(57)【特許請求の範囲】
【請求項１】
制御操作子の振動を検出するセンサの出力を半波整流又は全波整流した整流波形の振幅に基づいて、前記制御操作子に対する打撃操作を検出する打撃操作検出装置であって、
振幅レベル判定手段と打撃操作検出手段と閾値変更手段を有し、
前記振幅レベル判定手段は、前記整流波形の振幅を閾値と比較するものであり、
前記打撃操作検出手段は、前記整流波形の振幅が前記閾値を超えたことを前記振幅レベル判定手段が判定したとき、判定されたタイミングから予め設定された検出期間内において前記整流波形の振幅が最大となる値を検出するとともに、当該検出期間が経過したタイミングを打撃タイミングとして検出し、該打撃タイミングを出力するものであり、
前記閾値変更手段は、前記打撃操作検出手段により次の打撃タイミングが検出されるまでの期間において、所定の閾値変更周期で、前記閾値を現在の閾値の1/n倍（nは、１を超える実数）に変更する、
ことを特徴とする打撃操作検出装置。
【請求項２】
制御操作子の振動を検出するセンサの出力を半波整流又は全波整流した整流波形の振幅に基づいて、前記制御操作子に対する打撃操作を検出する打撃操作検出装置であって、
振幅レベル判定手段と打撃操作検出手段と閾値変更手段を有し、
前記振幅レベル判定手段は、前記打撃操作検出手段により検出された打撃タイミングから所定期間が経過した後に、前記整流波形の振幅を閾値と比較するものであり、
前記打撃操作検出手段は、前記整流波形の振幅が前記閾値を超えたことを前記振幅レベル判定手段が判定したとき、判定されたタイミングから予め設定された検出期間内において前記整流波形の振幅が最大となる値を検出するとともに、当該検出期間が経過したタイミングを打撃タイミングとして検出し、該打撃タイミングを出力するものであり、
前記閾値変更手段は、前記打撃操作検出手段により検出された打撃タイミングから前記所定期間を経過したタイミングにおいて、前記閾値を、当該所定期間の直前に前記打撃操作検出手段により検出された、前記整流波形の振幅が最大となる値の1/x倍（xは、１を超える実数）とし、前記打撃操作検出手段により次の打撃タイミングが検出されるまでの期間において、所定の閾値変更周期で、前記閾値を現在の閾値の1/n倍（nは、１を超える実数）に変更する、
ことを特徴とする打撃操作検出装置。
【請求項３】
前記閾値変更手段は、前記所定期間において、前記閾値を、当該所定期間の直前に前記打撃操作検出手段により検出された、前記整流波形の振幅が最大となる値とし、
前記振幅レベル判定手段は、前記所定期間においても、前記整流波形の振幅を前記閾値と比較する、
ようにしたことを特徴とする請求項２に記載の打撃操作検出装置。
【請求項４】
１又は複数の制御操作子の振動を検出する複数のセンサの出力を半波整流又は全波整流した整流波形の振幅を、チャンネルと対応づけて複数チャンネルの整流波形の振幅としたものに基づいて、前記１又は複数の制御操作子に対する打撃操作を検出する打撃操作検出装置において、
前記複数チャンネルの整流波形の振幅を判定する複数チャンネルの振幅レベル判定手段と、前記複数チャンネルの打撃操作を検出する複数チャンネルの打撃操作検出手段と、前記複数チャンネルに共通の閾値を変更する閾値変更手段を有し、
各チャンネルの前記振幅レベル判定手段は、いずれかのチャンネルの前記打撃操作検出手段により検出された打撃タイミングから所定期間が経過した後に、前記各チャンネルの整流波形の振幅を閾値と比較するものであり、
各チャンネルの前記打撃操作検出手段は、前記各チャンネルの整流波形の振幅が前記閾値を超えたことを前記各チャンネルの前記振幅レベル判定手段が判定したとき、判定されたタイミングから予め設定された検出期間内において前記各チャンネルの整流波形の振幅が最大となる値を検出するとともに、当該検出期間が経過したタイミングを前記各チャンネルの前記打撃タイミングとして検出し、該打撃タイミングを出力するものであり、
前記閾値変更手段は、いずれかのチャンネルの前記打撃操作検出手段により検出された打撃タイミングから前記所定期間を経過したタイミングにおいて、前記閾値を、当該所定期間の直前に前記いずれかのチャンネルの打撃操作検出手段により検出された、前記各チャンネルの整流波形の振幅が最大となる値の1/x倍（xは、１を超える実数）とし、任意のチャンネルの前記打撃操作検出手段により次の打撃タイミングが検出されるまでの期間において、所定の閾値変更周期で、前記閾値を現在の閾値の1/n倍（nは、１を超える実数）に変更するものである、
ことを特徴とする打撃操作検出装置。
【請求項５】
前記閾値変更手段は、前記所定期間において、前記閾値を、当該所定期間の直前に前記いずれかのチャンネルの打撃操作検出手段により検出された、前記整流波形の振幅が最大となる値とし、
前記各チャンネルの振幅レベル判定手段は、前記所定期間においても、前記各チャンネルの整流波形の振幅を前記閾値と比較する、
ようにしたことを特徴とする請求項４に記載の打撃操作検出装置。
【請求項６】
制御操作子の振動を検出するセンサの出力を半波整流又は全波整流した整流波形の振幅に基づいて、前記制御操作子に対する打撃操作を検出するために、振幅レベル判定ステップと打撃操作検出ステップと閾値決定ステップをコンピュータに実行させる打撃操作検出プログラムであって、
前記振幅レベル判定ステップは、前記整流波形の振幅を閾値と比較し、
前記打撃操作検出ステップは、前記整流波形の振幅が前記閾値を超えたことを前記振幅レベル判定ステップが判定したとき、判定されたタイミングから予め設定された検出期間内において前記整流波形の振幅が最大となる値を検出するとともに、当該検出期間が経過したタイミングを打撃タイミングとして検出し、該打撃タイミングを出力し、
前記閾値変更ステップは、前記打撃操作検出ステップにより次の打撃タイミングが検出されるまでの期間において、所定の閾値変更周期で、前記閾値を現在の閾値の1/n倍（nは、１を超える実数）に変更する、
ことを特徴とする打撃操作検出プログラム。
【請求項７】
制御操作子の振動を検出するセンサの出力を半波整流又は全波整流した整流波形の振幅に基づいて、前記制御操作子に対する打撃操作を検出するために、振幅レベル判定ステップと打撃操作検出ステップと閾値決定ステップをコンピュータに実行させる打撃操作検出プログラムであって、
前記振幅レベル判定ステップは、前記打撃操作検出ステップにより検出された打撃タイミングから所定期間が経過した後に、前記整流波形の振幅を閾値と比較し、
前記打撃操作検出ステップは、前記整流波形の振幅が前記閾値を超えたことを前記振幅レベル判定ステップが判定したとき、判定されたタイミングから予め設定された検出期間内において前記整流波形の振幅が最大となる値を検出するとともに、当該検出期間が経過したタイミングを打撃タイミングとして検出し、該打撃タイミングを出力し、
前記閾値変更ステップは、前記打撃操作検出ステップにより検出された打撃タイミングから前記所定期間を経過したタイミングにおいて、前記閾値を、当該所定期間の直前に前記打撃操作検出ステップにより検出された、前記整流波形の振幅が最大となる値の1/x倍（xは、１を超える実数）とし、前記打撃操作検出ステップにより次の打撃タイミングが検出されるまでの期間において、所定の閾値変更周期で、前記閾値を現在の閾値の1/n倍（nは、１を超える実数）に変更する、
ことを特徴とする打撃操作検出プログラム。
【請求項８】
１又は複数の制御操作子の振動を検出する複数のセンサの出力を半波整流又は全波整流した整流波形の振幅を、チャンネルと対応づけて複数チャンネルの整流波形の振幅としたものに基づいて、前記１又は複数の制御操作子に対する打撃操作を検出するために、
前記複数チャンネルの整流波形の振幅を判定する複数チャンネルの振幅レベル判定ステップと、前記複数チャンネルの打撃操作を検出する複数チャンネルの打撃操作検出ステップと、前記複数チャンネルに共通の閾値を変更する閾値変更ステップをコンピュータに実行させる打撃操作検出プログラムであって、
各チャンネルの前記振幅レベル判定ステップは、いずれかのチャンネルの前記打撃操作検出ステップにより検出された打撃タイミングから所定期間が経過した後に、前記各チャンネルの整流波形の振幅を閾値と比較し、
各チャンネルの前記打撃操作検出ステップは、前記各チャンネルの整流波形の振幅が前記閾値を超えたことを前記各チャンネルの前記振幅レベル判定ステップが判定したとき、判定されたタイミングから予め設定された検出期間内において前記各チャンネルの整流波形の振幅が最大となる値を検出するとともに、当該検出期間が経過したタイミングを前記各チャンネルの前記打撃タイミングとして検出し、該打撃タイミングを出力し、
前記閾値変更ステップは、いずれかのチャンネルの前記打撃操作検出ステップにより検出された打撃タイミングから前記所定期間を経過したタイミングにおいて、前記閾値を、当該所定期間の直前に前記いずれかのチャンネルの打撃操作検出ステップにより検出された、各チャンネルの整流波形の振幅が最大となる値の1/x倍（xは、１を超える実数）とし、任意のチャンネルの前記打撃操作検出ステップにより次の打撃タイミングが検出されるまでの期間において、所定の閾値変更周期で、前記閾値を現在の閾値の1/n倍（nは、１を超える実数）に変更する、
ことを特徴とする打撃操作検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御操作子に加えた打撃操作を検出する打撃操作検出装置及び打撃操作検出プログラムに関するものである。特に、制御操作子を演奏操作子として、打撃操作を検出することにより楽音信号を発生させる電子ドラム、電子スティック等に用いるのに適したものである。
【背景技術】
【０００２】
従来、電子ドラム、パッド操作子と呼ばれている電子楽器の演奏操作子において、演奏者による打撃操作を検出することにより、打楽器音を発生させている。
図９は、従来の打撃操作検出装置のブロック構成図である。図中、１は圧電素子等の振動センサであって、演奏操作子の振動を検出して振動波形を出力する。２はセンサアンプであって、振動センサ１の出力波形を増幅したり、振動センサ１を動作させるに必要な電源を供給したりする。
８１はエンベロープ出力回路であって、振動波形のエンベロープを出力する。例えば、半波整流回路又は全波整流回路に積分回路が接続されたものであり、整流波形の各周期におけるピーク点（尖頭値）をつないだエンベロープ（包絡線）が出力される。
８３は１チップマイコンLSI（Large Scale Integrated Circuit）であり、A/D変換器（analog to digital conversion）４、CPU（Central Processing Unit）８２等を内蔵し、打撃イベント（エンベロープの振幅最大値、打撃タイミング）をリアルタイムで出力するインタフェースを備え、音源装置に接続される。
【０００３】
図１０は、図９に示した従来の打撃操作検出装置の動作を説明するための波形図である。図１０（ａ）は、振動センサ１が出力する振動波形９１である。図１０（ｂ）は、振動波形９１のエンベロープ９３と閾値９４の関係を示す図である。
振動波形９１は、エンベロープ出力回路８１において全波整流波形９２のエンベロープ９３となって、A/D変換器４に出力される。CPU８２は、A/D変換されたエンベロープ９３を周期的に読み取り、打撃イベントの検出を行う。エンベロープ９３の振幅最大値を検出した時点を、打撃イベントのタイミングとする。
【０００４】
しかし、打撃操作によって発生する振動波形は複雑である。打面の振動を全て拾うような振動センサ１であれば、高次倍音も拾う。打面の形状によっては分割振動がある。打面が大きいと反射によりピークが繰り返し発生する。また、振動センサ１によっては、振動波形が長く続いたり、高調波歪が発生したりして、振動波形をさらに複雑にする。
その結果、打撃操作による最初のピークが発生した後でも、付随的にピークが発生することがある。この場合、複数の打撃イベントが連続して出力されることになる。その結果、短時間で同じ楽音波形が発生し、フェージングが起きてしまうので聞き苦しい音色の打楽器音が発生するという問題がある。また、音源装置においては、打撃イベント毎に発音チャンネルを割り当てるので、音源の最大同時発音チャンネル数を浪費してしまうという問題もある。
また、複数の演奏操作子が近接配置されている場合、いわゆる「飛びつき振動」（励振）の問題がある。１つの演奏操作子の振動が他の演奏操作子に伝わることにより、他の演奏操作子において、打撃操作がないにもかかわらず、打撃イベントが出力される（特許文献２，３参照）。
【０００５】
そこで、適切な閾値９４を設定することにより、この閾値９４を超えたピークを、実際に操作された２打目の打撃操作であると判定する。しかし、閾値９４を動的に変更しなければ、後続の小さな打撃操作を検出できない。
閾値９４を動的に生成する方法として、いくつかの方式が知られている。
【０００６】
特許文献１においては、エンベロープの振幅（瞬時値）のA/D変換値の移動平均をとり、その2倍又は1.5倍の値を閾値として、この閾値と現在のA/D変換値とを比較し、現在のA/D変換値が閾値を超えたとき、信号レベルが安定し最大レベルに達した値を取得するため、所定時間経過後に、再度A/D変換値を取り込み、楽音を発音する。
しかし、A/D変換サイクル毎に、移動平均の計算をするから、CPU８２として、演算処理能力の高いものを使用する必要がある。
【０００７】
特許文献２においては、自然な減衰曲線に応じて変化する閾値（自己振動検出データ）を生成するための係数をテーブルとして記憶している。エンベロープのピークが検出されると、ピーク値に応じて上述したテーブルから係数を読み出して閾値を生成し、現在のピーク値が閾値を超えたときにパッド（演奏操作子）が操作されとことを検出する。
しかし、閾値の特性が固定されているため、演奏操作子を取り替えると対応できなくなる。
【０００８】
また、上述した特許文献１，２は、エンベロープを対象として打撃操作を検出している。しかし、エンベロープ出力回路８１は積分回路を含む。従って、減衰が早い振動波形を出力する演奏操作子に対しては時定数を短くしないとエンベロープに追従した出力ができないから、連打がマスキングされてしまう。しかし、エンベロープ出力回路８１は、ハードウエアであるため、時定数を簡単に変更できない。
【０００９】
特許文献３においては、振動センサ１の出力を全波整流した波形の振動最大値を検出すると、発音待機期間、再発音禁止期間を経て、再発音許可期間とし、発音待機期間終了時にキーオン（発音指示）がなされる。再発音許可期間において、入力信号が基準値（閾値）を超えた時に、再発音を可能にしている。
上述した基準値は、疑似包絡線（疑似エンベロープ）に対応したものである。この基準値は、発音待機期間において更新される場合もあるが、原則として振動最大値を検出した時点から再発音許可期間までは、振動最大値から一定の傾きで減少し、再発音許可期間になると、一定の大きな傾きで減少する。しかし、実際の振動波形は指数関数で減衰するから、上述した基準値（閾値）の特性と合わない。
【特許文献１】特開平８−２０２３５４号公報
【特許文献２】特公平６−６４４６７号公報
【特許文献３】特公平７−６９６８７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は、上述した問題点を解決するためになされたもので、制御操作子に対する打撃操作を検出する際の誤動作を少なくする処理を、小さな処理能力で実現できる打撃操作検出装置及び打撃操作検出プログラムを提供することを目的とするものである。
【課題を解決するための手段】
【００１１】
本発明は、請求項１に記載の発明においては、制御操作子の振動を検出するセンサの出力を半波整流又は全波整流した整流波形の振幅に基づいて、前記制御操作子に対する打撃操作を検出する打撃操作検出装置であって、振幅レベル判定手段と打撃操作検出手段と閾値変更手段を有し、前記振幅レベル判定手段は、前記整流波形の振幅を閾値と比較するものであり、前記打撃操作検出手段は、前記整流波形の振幅が前記閾値を超えたことを前記振幅レベル判定手段が判定したとき、判定されたタイミングから予め設定された検出期間内において前記整流波形の振幅が最大となる値を検出するとともに、当該検出期間が経過したタイミングを打撃タイミングとして検出し、該打撃タイミングを出力するものであり、前記閾値変更手段は、前記打撃操作検出手段により次の打撃タイミングが検出されるまでの期間において、所定の閾値変更周期で、前記閾値を現在の閾値の1/n倍（nは、１を超える実数）に変更するものである。
本発明は、請求項２に記載の発明においては、制御操作子の振動を検出するセンサの出力を半波整流又は全波整流した整流波形の振幅に基づいて、前記制御操作子に対する打撃操作を検出する打撃操作検出装置であって、振幅レベル判定手段と打撃操作検出手段と閾値変更手段を有し、前記振幅レベル判定手段は、前記打撃操作検出手段により検出された打撃タイミングから所定の過渡期間が経過した後に、前記整流波形の振幅を閾値と比較するものであり、前記打撃操作検出手段は、前記整流波形の振幅が前記閾値を超えたことを前記振幅レベル判定手段が判定したとき、判定されたタイミングから予め設定された検出期間内において前記整流波形の振幅が最大となる値を検出するとともに、当該検出期間が経過したタイミングを打撃タイミングとして検出し、該打撃タイミングを出力するものであり、前記閾値変更手段は、前記打撃操作検出手段により検出された打撃タイミングから前記過渡期間を経過したタイミングにおいて、前記閾値を、当該過渡期間の直前に前記打撃操作検出手段により検出された、前記整流波形の振幅が最大となる値の1/x倍（xは、１を超える実数）とし、前記打撃操作検出手段により次の打撃タイミングが検出されるまでの期間において、所定の閾値変更周期で、前記閾値を現在の閾値の1/n倍（nは、１を超える実数）に変更するものである。
【００１２】
従って、打撃操作の検出は、整流波形の振幅が閾値を超えたタイミングから予め設定された検出期間内において整流波形の振幅が最大となる値を検出することにより行うので、上述した検出期間内に複数のピークがあるなど、振動波形が複雑であっても、これらに影響されることなく、簡単な処理で打撃操作を検出できる。また、打撃検出の応答時間の打ち切り処理が簡単に行える。
また、所定の過渡期間を経過したタイミングにおける閾値は、振動波形の最大となる振幅レベルに応じて動的に変更されるとともに、その後の閾値は、打撃操作による振動波形の指数関数的に減衰する特性に応じて減衰する。この動的に変更される閾値により、連打の２打目の打撃操作が弱くても、この２打目の打撃操作を検出できる。
また、閾値が指数関数的に減衰する特性を、階段状に変更することにより実現している。そのため、閾値は、所定の閾値変更周期毎に演算すればよいので、単位時間当たりの処理量が小さい。CPUで演算する場合はCPU負荷が軽く、ハードウエアロジックで演算する場合は処理速度が遅くても処理できる。
【００１３】
また、打撃操作により発生するセンサの出力波形は、打撃操作の開始時点からしばらくの間は波形が乱れており、かつ、波形形状が一定しない。従って、過渡期間において、その直前に検出された、整流波形の振幅が最大となる値に近い振幅のピークが発生したり、さらに高い振幅のピークが発生する可能性がある。
しかし、過渡期間が終了するまでは打撃操作を検出しないから、過渡期間において、最初の打撃操作に付随して振幅の大きな整流波形が発生しても、次の打撃操作であると誤って検出しない。
また、センサの出力波形のエンベロープを処理対象としないため、制御操作子、センサ等の構造、特性等の変更に対し、CPUの処理プログラムを変更することなどにより、柔軟に対応できる。
【００１４】
請求項３に記載の発明においては、請求項２に記載の打撃操作検出装置において、前記閾値変更手段は、前記過渡期間において、前記閾値を、当該過渡期間の直前に前記打撃操作検出手段により検出された、前記整流波形の振幅が最大となる値とし、前記振幅レベル判定手段は、前記過渡期間においても、前記整流波形の振幅を前記閾値と比較するものである。
従って、上述した過渡期間において行われた打撃操作も、整流波形の振幅が上述した閾値を超えていれば、検出できるようになる。
しかし、打撃によるセンサの出力波形は、打撃の開始時点からしばらくの間は波形が乱れており、かつ、波形形状が一定しない。
そこで、この過渡期間における閾値は、打撃操作検出手段より検出された、整流波形の振幅が最大となる値にすることにより、打撃タイミングを誤検出しにくくしている。
【００１５】
請求項４に記載の発明においては、１又は複数の制御操作子の振動を検出する複数のセンサの出力を半波整流又は全波整流した整流波形の振幅を、チャンネルと対応づけて複数チャンネルの整流波形の振幅としたものに基づいて、前記１又は複数の制御操作子に対する打撃操作を検出する打撃操作検出装置において、前記複数チャンネルの整流波形の振幅を判定する複数チャンネルの振幅レベル判定手段と、前記複数チャンネルの打撃操作を検出する複数チャンネルの打撃操作検出手段と、前記複数チャンネルに共通の閾値を変更する閾値変更手段を有し、各チャンネルの前記振幅レベル判定手段は、いずれかのチャンネルの前記打撃操作検出手段により検出された打撃タイミングから所定の過渡期間が経過した後に、前記各チャンネルの整流波形の振幅を閾値と比較するものであり、各チャンネルの前記打撃操作検出手段は、前記各チャンネルの整流波形の振幅が前記閾値を超えたことを前記各チャンネルの前記振幅レベル判定手段が判定したとき、判定されたタイミングから予め設定された検出期間内において前記各チャンネルの整流波形の振幅が最大となる値を検出するとともに、当該検出期間が経過したタイミングを前記各チャンネルの前記打撃タイミングとして検出し、該打撃タイミングを出力するものであり、前記閾値変更手段は、いずれかのチャンネルの前記打撃操作検出手段により検出された打撃タイミングから前記過渡期間を経過したタイミングにおいて、前記閾値を、当該過渡期間の直前に前記いずれかのチャンネルの打撃操作検出手段により検出された、前記各チャンネルの整流波形の振幅が最大となる値の1/x倍（xは、１を超える実数）とし、任意のチャンネルの前記打撃操作検出手段により次の打撃タイミングが検出されるまでの期間において、所定の閾値変更周期で、前記閾値を現在の閾値の1/n倍（nは、１を超える実数）に変更するものである。
【００１６】
この請求項４に記載の発明は、複数のセンサの出力波形のそれぞれについて、打撃操作を検出するものである。
第１の適用例は、近接配置された複数の制御操作子のそれぞれにセンサが取り付けられており、ある１つの制御操作子が打撃操作を受けたときの振動が、他の制御操作子にも伝搬するような場合である。
第２の適用例は、１個の制御操作子の複数箇所にセンサが取り付けられおり、この制御操作子が打撃操作を受けたときの振動を、複数のセンサが検出して振動波形を発生し、最初に振動を検出したセンサに近い箇所が打撃操作点であると識別する場合である。
この発明では複数のセンサ出力をチャンネルに対応づけ、各チャンネルについて、信号
処理をしている。個々のチャンネルにおける信号処理については、上述した請求項１，２の発明と本質的には変わらない構成であるから、同様の作用効果を奏する。
ただし、この請求項３に記載の発明では、いずれかのチャンネルの打撃操作検出手段により打撃タイミングが検出されたときは、全てのチャンネルに共通の過渡期間と、共通の閾値を設定している。
従って、センサ出力波形の間に、いわゆる「飛びつき振動」がある場合にも、打撃操作により最初に打撃タイミングが検出されたチャンネルのみに打撃操作が検出されるため、他のチャンネルにおいて偽の打撃操作を検出してしまうことを防止できる。
【００１７】
請求項５に記載の発明においては、請求項４に記載の打撃操作検出装置において、前記閾値変更手段は、前記過渡期間において、前記閾値を、当該過渡期間の直前に前記いずれかのチャンネルの打撃操作検出手段により検出された、前記整流波形の振幅が最大となる値とし、前記各チャンネルの振幅レベル判定手段は、前記過渡期間においても、前記各チャンネルの整流波形の振幅を前記閾値と比較するものである。
従って、請求項３に記載の発明と同様に、過渡期間において行われた打撃操作も検出できるようになる。
【００１８】
請求項６に記載の発明においては、制御操作子の振動を検出するセンサの出力を半波整流又は全波整流した整流波形の振幅に基づいて、前記制御操作子に対する打撃操作を検出するために、振幅レベル判定ステップと打撃操作検出ステップと閾値決定ステップをコンピュータに実行させる打撃操作検出プログラムであって、上述した請求項１に記載の打撃操作検出装置を実現でき、上述した請求項１と同様の作用効果を奏するものである。
請求項７に記載の発明においては、制御操作子の振動を検出するセンサの出力を半波整流又は全波整流した整流波形の振幅に基づいて、前記制御操作子に対する打撃操作を検出するために、振幅レベル判定ステップと打撃操作検出ステップと閾値決定ステップをコンピュータに実行させる打撃操作検出プログラムであって、上述した請求項２に記載の打撃操作検出装置を実現でき、上述した請求項１と同様の作用効果を奏するものである。
上述した請求項７に記載の発明において、上述した請求項３に記載の打撃操作検出装置を実現するために、閾値変更ステップは、過渡期間において、閾値を、当該過渡期間の直前に打撃操作検出ステップにより検出された、整流波形の振幅が最大となる値とし、振幅レベル判定ステップは、過渡期間においても、整流波形の振幅を前記閾値と比較するようにすることができる。
【００１９】
請求項８に記載の発明においては、１又は複数の制御操作子の振動を検出する複数のセンサの各出力を半波整流又は全波整流した整流波形の振幅を、チャンネルと対応づけて複数チャンネルの整流波形の振幅としたものに基づいて、前記１又は複数の制御操作子に対する打撃操作を検出するために、前記複数チャンネルの整流波形の振幅を判定する複数チャンネルの振幅レベル判定ステップと、前記複数チャンネルの打撃操作を検出する複数チャンネルの打撃操作検出ステップと、前記複数チャンネルに共通の閾値を変更する閾値変更ステップをコンピュータに実行させる打撃操作検出プログラムであって、上述した請求項４に記載の打撃操作検出装置を実現でき、上述した請求項４と同様の作用効果を奏するものである。
上述した請求項８に記載の発明において、上述した請求項５に記載の打撃操作検出装置を実現するために、閾値変更ステップは、過渡期間において、閾値を、当該過渡期間の直前にいずれかのチャンネルの打撃操作検出手段により検出された、整流波形の振幅が最大となる値とし、各チャンネルの振幅レベル判定ステップは、過渡期間においても、各チャンネルの整流波形の振幅を前記閾値と比較するようにすることができる。
【００２０】
上述した請求項２から５までのいずれか１項に記載の打撃操作検出装置において、及び、上述した請求項７又は８に記載の打撃操作検出プログラムにおいて、以下のように機能を限定することができる。
上述したxの値やnの値は2とすることができる。従って、CPUで演算する場合でも、シフトレジスタ等のハードウエアロジックで演算する場合でも、処理が簡単である。
また、上述した所定の閾値変更周期（T0）は、振幅レベル判定手段（振幅レベル判定ステップ）が振幅レベル判定をする周期及び打撃操作検出手段（打撃操作検出ステップ）が打撃操作を検出する周期よりも長くすることができる。従って、単位時間当たりの処理量が小さくなる。
【００２１】
一般に、振動波形は、振幅値が37％（＝e-1）に減衰する時間が、0.5〜30msecであるといえる。従って、nの値と閾値変更周期（T0）を、この条件を満たす範囲で決めれば、実際の振動波形の減衰特性によく合う閾値が得られる。
n＝2としたとき、閾値変更周期を10msec〜20msc、典型的には15msecとすると、電子ドラム（パッド操作子）における実際の振動波形の減衰曲線によく合う。
【００２２】
上述した過渡期間（Tr）、検出期間（Td）、xの値、閾値変更周期（T0）の少なくとも１つの設定値を書き替え可能に記憶する記憶手段と、この記憶手段に記憶された少なくとも１つの設定値をユーザの操作により変更する設定値変更手段を有するようにしてもよい。
従って、ユーザが、制御操作子やセンサを異なる構造のものに変更したり、あるいは、大きさの異なるものに変更したりした場合、あるいは、近接して他の制御操作子を配置したりした場合に、ユーザが、上述した少なくとも１つの設定値を変更することにより、制御操作子等の変更に柔軟に対応して、正常な打撃操作の検出が可能となる。
【００２３】
上述したセンサの出力を半波整流又は全波整流した整流波形の振幅レベルに代えて、センサが出力する波形のエンベロープに基づいて、制御操作子に対する打撃操作を検出する打撃操作検出装置としてもよい。
この場合、振幅レベル判定手段（振幅レベル判定ステップ）は、整流波形の振幅に代えて、センサが出力する波形のエンベロープの振幅を閾値と比較し、打撃操作検出手段（打撃操作検出ステップ）は、整流波形の振幅が最大となる値に代えて、センサが出力する波形のエンベロープの振幅が最大となる値を検出し、閾値変更手段（閾値変更ステップ）は、閾値を、整流波形の振幅が最大となる値に代えて、センサが出力する波形のエンベロープの振幅が最大となる値の1/x倍とする。
上述した打撃操作検出手段（打撃操作検出ステップ）は、打撃タイミングにおいて、上述した検出期間内において前記整流波形の振幅が最大となる値を打撃力として出力してもよい。
【発明の効果】
【００２４】
本発明は、電子ドラム（パッド操作子）等の制御操作子に対する打撃操作を検出する際の誤動作を少なくする処理を、小さな処理能力で実現できるという効果がある。
また、制御操作子やセンサ等の変更に対して、動作特性を決める設定値を変更することにより、柔軟に対応できるという効果がある。
【発明を実施するための最良の形態】
【００２５】
図１は、本願発明の実施の一形態である打撃操作検出装置を示すブロック図である。図中、図９と同様な部分には同じ符号を付している。
８は１チップマイコンLSIであって、A/D変換器４、図示しないCPU等を内蔵している。CPUがプログラムを実行することにより、打撃操作検出部５、振幅レベル判定部６、閾値変更部７の各機能を実現する。A/D変換器４は、１チップマイコンLSI８に内蔵される代わりに外付けされてもよい。
【００２６】
振動センサ１が出力する振動波形は、センサアンプ２で増幅され、半波整流回路３において、その片極性の半波整流波形（正極性、又は、負極性を極性反転したもの）に変換されて、A/D変換器４に出力され、ディジタル値に変換される。このディジタル値は、図示しないCPUにより信号処理される。
１チップマイコンLSI８は、整流波形振幅の最大値を検出する。この最大値は、理想的には、整流波形の複数のピーク値の中で最大となる振幅値であるが、応答を速くするために最大値検出期間（時間長Td）が予め設定されている。１チップマイコンLSI８は、検出された整流波形の振幅最大値を打撃力のデータとした打撃イベントを示す信号を、検出されたタイミング（打撃タイミング）において、リアルタイムで出力する。
【００２７】
打撃操作検出装置の最小限構成は、打撃操作検出部５、振幅レベル判定部６、閾値変更部７の各機能である。これに、A/D変換器４から順に、振動センサ１までを、１つずつ加えた構成が考えられる。振動センサ１を、任意の振動体に取り付けることにより、この振動体が演奏操作子（制御操作子）になる。
従って、打撃操作検出装置は、電子ドラム（パッド操作子）の筐体に内蔵されたり、電子ドラムからセンサアンプ２の出力を入力する装置となったり、音源装置又は電子楽器に内蔵されたりして使用される。
【００２８】
なお、振動センサ１の出力を全波整流すれば、振動波形の複数のピーク値の中から、正負を問わないで最大となる振幅値を検出できる。しかし、半波整流した場合は、実装上、若干のコストダウンになる。
また、整流は、図示の半波整流回路３のようなハードウエアで実現する代わりに、振動センサ１の出力をセンサアンプ２を経て、A/D変換器４に入力した後における、ディジタル信号処理において実現してもよい。この場合、A/D変換器４は正負の値を入力できる、差動入力型を用いる。
A/D変換サイクル（サンプリング周期）Tadは、短いほど、信号処理の精度が増大するが、CPUの処理負荷が大きくなる。なお、後述する図２等の波形図では、A/D変換サイクルTadが十分短いものとし、これを無視している。
【００２９】
図２は、図１に示した実施形態の動作を説明するための第１の波形図である。
主として、振動波形の各周期のピーク点の振幅が徐々に大きくなる振動波形において、整流波形の振幅が最大となる値を検出する動作を説明するものである。
１１は半波整流波形を示している。１１ａは半波整流波形の第１波のピーク点であり、１１ｂ〜１１ｆは、第２〜第６波のピーク点である。
振動センサ１の出力は、典型的には、図１０（ａ）に示した振動波形９１のように、振動の第１周期のピーク点が、振動波形において最大となる振幅値になるのが普通である。しかし、図２に半波整流波形１１として示したように、振動の各周期のピーク点１１ａ〜１１dの振幅値が徐々に大きくなり、遅れて発生するピーク点１１dの振幅値が振動波形全体において最大となる場合がある。
【００３０】
図２を参照して、図１に示した各機能ブロックの動作を説明する。
振幅レベル判定部６は、打撃操作検出部５により検出された打撃タイミングから所定の過渡期間（時間長Tr）が経過した後に、半波整流波形１１の振幅（瞬時値）を閾値変更部７で決定された閾値１２と比較する。この閾値１２は、電源オン時において、所定のレベル（例えば0）に初期設定されている。
打撃操作検出部５は、半波整流波形１１の振幅が閾値１２（この場合0）を超えたことを、振幅レベル判定部６が判定したとき、判定されたタイミングから予め設定された最大値検出期間（時間長Td）内において半波整流波形１１の振幅が最大となる値P1（図示の例では、ピーク点１１ｄの振幅）を検出するとともに、最大値検出期間が経過したタイミングを打撃タイミング（打撃イベントの発生タイミング）として検出する。
打撃操作検出部５は、値P1を打撃力のデータとした打撃イベントを示す信号を、検出された打撃タイミングにおいて、リアルタイムで出力する。
なお、打撃イベントを利用する側において、打撃力のデータが不要な場合は、打撃イベントを示す信号として、単に打撃タイミングのみを示す信号を出力してもよい。
【００３１】
閾値変更部７は、上述した過渡期間（時間長Tr）においては、閾値１２を、この過渡期間の直前に打撃操作検出部５により検出された値P1とする。図示の例では、処理を簡単にするため、過渡期間（時間長Tr）を後述する閾値変更周期（T0）に等しくしている。
閾値変更部７は、過渡期間経過後のタイミングにおいて、閾値１２を、この過渡期間の直前に打撃操作検出部５により検出された値P1の1/x倍（xは、１を超える実数、図示の例ではx＝2）とし、以後、閾値１２を、所定の閾値変更周期（T0）で、現在の閾値の1/n倍（nは、１を超える実数、図示の例ではn＝2）に変更する。ただし、打撃操作検出部５により次の打撃タイミングが検出されるまでである。
図示のように打撃イベントが後続しない場合、閾値１２は、指数関数に従う階段状に減少して行き、最終的には、ほぼ0になる。
ここで、閾値１２は、変更処理の回数を制限したり、閾値が最小値（0よりも僅かに大きい値）より小さくなれば、変更処理をしないようにしたりして、閾値を変更するための処理量を少なくしてもよい。
【００３２】
検出された打撃タイミングは、半波整流波形１１の振幅が閾値１２を超えたタイミングから最大値検出期間（Td）が経過したタイミングとなる。
図示の例では、この最大値検出期間（Td）の間に半波整流波形１１が３波あり、第１〜第３のピーク点１１ａ，１１ｂ，１１ｃがある。しかし、これらのピーク点の振幅は、最大値ではない。最大値検出期間（Td）を十分長くすれば、半波整流波形１１の振幅が真に最大となるピーク点の発生が遅くなっても検出できる。しかし、打撃操作があってから打撃タイミングを検出するまでの応答時間が遅くなりすぎる。
そこで、制御操作子や振動センサ１によって決まる振動波形の振幅が最大となると予想されるタイミングに合わせて、最大値検出期間（Td）を設定する。この最大値検出期間（Td）で打撃操作の検出処理が打ち切られるので、打撃検出の応答時間がこの時間（Td）よりも遅れない。
【００３３】
上述した説明において、振幅レベル判定部６は、過渡期間（時間長Tr）においても、半波整流波形１１の振幅を閾値１２と比較し、打撃操作検出部５は、この過渡期間においても打撃タイミングを検出していた。
これに代えて、振幅レベル判定部６は、上述した過渡期間においては、半波整流波形１１の振幅を閾値１２と比較する動作をしないようにしてもよい。その結果、過渡期間において、打撃操作検出部５は、打撃タイミングを検出しない。
【００３４】
図３（ａ），図３（ｂ）は、図１に示した実施形態の動作を説明するための第２，第３の波形図である。主として、過渡期間（時間長Tr）における動作と、第１の打撃イベントに続く第２の打撃イベントを検出する動作とを説明するためのものである。
図４は、図１に示した実施形態において、図３（ｂ）に示した動作をコンピュータプログラムにより実現するためのフローチャートである。図１に示した１チップマイコンLSI８が内蔵するプログラムを、内蔵CPUが実行することにより実現される。
【００３５】
図３（ａ），図３（ｂ）において、振動センサ１が出力する波形は、図１０（ａ）に示した振動波形９１と同じものであって、２１は振動センサ１の出力を半波整流した整流波形を示している。
２１ａ，２１ｂは、第１の打撃操作による整流波形の第１，２波のピーク点である。２１ｃは、第１の打撃操作による整流波形の第３波と第２の打撃操作による整流波形の第１波とが合成された波形のピーク点である。２１ｄ，２１ｅは、第２の打撃操作による半波整流波形の第２，第３波のピーク点である。
図示の例では、半波整流波形２１の第１波のピーク点２１ａが、振動波形における振幅最大値となっている。打撃検出の応答時間を短くするために、最大値検出期間（Td）は、半波整流波形２１の、推定されるピーク点２１ａが、上述した最大値検出期間（Td）内に入るように設定しておく。
【００３６】
図３（ａ）を参照し、図１に示した各機能ブロックの動作例を説明する。
振幅レベル判定部６は、打撃操作検出部５により検出された打撃タイミングから所定の過渡期間（時間長Tr）が経過した後に、半波整流波形２１の振幅を閾値変更部７で決定された閾値２２と比較する。電源オン時における初期閾値は、例えば0である。
打撃操作検出部５は、半波整流波形２１の振幅が閾値２２を超えたことを振幅レベル判定部６が判定したとき、判定されたタイミングから最大値検出期間（時間長Td）内において半波整流波形２１の振幅が最大となる値P1（図示の例では、第１波のピーク点２１ａの振幅）を検出するとともに、最大値検出期間が経過したタイミングを第１の打撃タイミングとして検出する。
打撃操作検出部５は、値P1を打撃力のデータとした打撃イベントを示す信号を、検出された第１の打撃タイミングにおいて出力する。
【００３７】
閾値変更部７は、第１の打撃タイミングから過渡期間（時間長Tr）を経過するまでは、閾値２２を、この過渡期間の直前に打撃操作検出部５により検出された値P1そのものに設定する。
閾値変更部７は、過渡期間（時間長Tr）が経過した後に、閾値２２を、打撃操作検出部５により検出された値P1の1/x倍とし、以後、閾値２２を、所定の閾値変更周期T0で、打撃操作検出部５により第２の打撃タイミングが検出されるまで、現在の閾値の1/n倍に変更する。
【００３８】
図示の例では、振幅レベル判定部６は、閾値２２がP1/(xn)であるとき、半波整流波形２１が、この閾値２２を超えたことを判定する。
打撃操作検出部５は、半波整流波形２１の振幅が閾値２２を超えたことを、上述した振幅レベル判定部６が判定したとき、判定されたタイミングから最大値検出期間（時間長Td）内において半波整流波形２１の振幅が最大となる値P2（図示の例では、ピーク点２１ｃの振幅）を検出するとともに、この最大値検出期間が経過したタイミングを、第２の打撃タイミングとして検出する。
打撃操作検出部５は、値P2を打撃力のデータとした第２の打撃イベントを示す信号を、検出された第２の打撃タイミングにおいて出力する。
【００３９】
閾値変更部７は、閾値２２を、上述した第２の打撃タイミングから過渡期間（時間長Tr）を経過するまでは、この過渡期間の直前に打撃操作検出部５が検出した値P2そのものに設定し、過渡期間（時間長Tr）経過後のタイミングにおいては、値P2の1/n倍とし、以後、所定の閾値変更周期T0で、現在の閾値の1/n倍（nは、１を超える実数、図示の例ではn＝2）に変更する。
【００４０】
上述した動作例において、過渡期間では、閾値２２を、この過渡期間の直前に打撃操作検出部５が検出した値P1又はP2とすることにより、打撃タイミングからしばらくの過渡期間において、半波整流波形１１，２１に、値P1，P2に接近した振幅のピークが発生した場合にも、これを誤って次の打撃操作であると検出しないようにしている。
なお、振幅が最大となる値に１より大きな重み係数を乗算して閾値とすれば、さらに、誤検出が少なくなるが、CPUの演算処理速度が遅いと、振幅が最大となる値を検出した直後では係数乗算が間に合わないために、閾値を変更できないおそれがある。
【００４１】
一方、図３（ｂ）に示す動作例は、過渡期間（Tr）が経過するまでは、打撃操作を検出しないようにして再発音を拒否するものである。従って、打撃の開始時点からしばらくの過渡期間において、先に検出された整流波形の振幅が最大となる値に接近した振幅のピークが発生したり、さらに高い振幅のピークが発生する可能性がある。しかし、これらのピークを第２の打撃タイミングであると誤って検出しないようにしている。その他の点では、図３（ａ）を参照して説明した動作と同じである。
図３（ｂ）において、２３は閾値である。過渡期間（Tr）においては、閾値が設定されないか、設定されていたとしても、閾値と半波整流波形の振幅との比較処理をしない。波形図の下に記載したモードは、図４における処理との対応関係を示すものである。
【００４２】
図３（ｂ）、図４を参照し、図１に示した各機能ブロックの動作例を説明する。
図４に示すフローチャートは、電源がオンとなることにより、処理ステップが開始され、打撃検索（search）モード、最大値検出（peak）モード、再発音拒否（reject）モードを、循環的に繰り返す。
図３（ｂ）に示した半波整流波形２１では、最初のピーク点２１ａが振幅最大値となっている。従って、最大値検出はピーク検出でもあるから、図４においては、最大値検出モードを「peak」モードと簡略的に記載している。
【００４３】
Ｓ３１において、電源オン後の初期設定をする。初期モードを「search」（打撃検索）としているため、電源オン時は、所定の過渡期間（Tr）経過後と同じ処理をする。その際、閾値を0、max（変数）を0に初期設定する。
Ｓ３２において、半波整流波形２１がA/D変換されたディジタル値を読み取り、deta（変数）に取り込み、次のＳ３３に処理を進める。
CPUは、定期的に、A/D変換サイクル（サンプリング周期）TadでA/D変換器４を起動し、半波整流回路３から入力された信号を読み取る。図７を参照して説明する一具体例においては、振動波形の基本周波数が約150Hzであり、これに応じて、0.2msecのA/D変換サイクルを設定している。
【００４４】
Ｓ３３において、現在のモードを判定し、各モードに従った処理ステップに進み、各モードにおける一単位の処理ステップを終了すると、Ｓ３２に処理を戻す。
現在のモードが「search」（打撃検索モード）であればＳ３４に処理を進め、「peak」（振幅最大値検出モード）であればＳ３７に処理を進め、「reject」（再発音拒否モード）であればＳ４２に処理を進める。
「search」モードにおけるＳ３４において、data値が閾値以下であれば、Ｓ３５に処理を進め、閾値変更周期T0（例えば、15msec）毎に、閾値を現在の閾値の1/n（例えば、n＝2）にして、Ｓ３２に処理を戻し、上述したdata値が閾値を超えれば、Ｓ３６に処理を進め、モードを「peak」に変更し、最大値検出期間（Td）タイマーをセットして、Ｓ３２に処理を戻す。
【００４５】
「peak」モードにおけるＳ３７において、data値がmax値を超えるか否かを判定し、max値を超えればＳ３８に処理を進め、data値をmax値とする更新をし、Ｓ３９に処理を進め、上述したdata値がmax値を超えていなければ、直ちにＳ３９に処理を進める。
Ｓ３９において、最大値検出期間タイマがTd（例えば、Td＝1msec）経過したか否か、すなわち、「peak」モードの期間が、Td経過したか否かを判定し、経過していればＳ４０の発音処理に進み、経過していないときは、直ちにＳ３２に処理を戻す。
従って、Ｓ３７〜Ｓ３９において、最大値検出期間（Td）内において、半波整流波形２１をA/D変換した複数サンプルのdata値を読み取り、この複数サンプルのdata値の中で最大となるサンプル値を検出する。
【００４６】
A/D変換サイクルTadを0.2mscとし、最大値検出期間Tdを1mseとした場合、最大値検出期間タイマーの値が、0，0.2，0.4，0.6，0.8，1.0msecのときの6サンプルの内で最大となるサンプル値を検出する。最大値検出期間TdがA/D変換サイクルTadの整数倍でない場合、図示のフローチャートでは、Ｓ３８の後でＳ３９の判定をするため、サンプル数が1個増え、実質的な最大値検出期間Tdは、1msec＋0.2msecとなる。
なお、最大値を検出する際に、他のサンプル値から極端に大きいサンプル値は、ノイズであるとして、これを除外する処理を加えてもよい。
また、最大値検出期間を時間長で規定する代わりに、A/D変換されたサンプルの個数で規定してもよい。過渡期間、閾値変更周期についても、同様に、A/D変換されたサンプルの個数で規定してもよい。
【００４７】
Ｓ４０において、Ｓ３７，Ｓ３８，Ｓ３９によって検出された振幅最大値maxに基づいて、図示しない別のプログラムに発音処理を開始させ、Ｓ４１に処理を進める。Ｓ４０における具体的な処理の説明は省略する。図１に示した装置においては、打撃イベントを示す信号を出力する。この実施形態の打撃操作検出装置を、電子楽器に適用した場合は、楽音信号の出力までが実行される。
Ｓ４１において、閾値を、上述した振幅最大値の1/x倍（例えば、x＝2）に設定し、モードを「reject」に変更し、過渡期間（Tr）タイマーをセットし、Ｓ３２に処理を戻す。
「reject」モードにおけるＳ４２において、過渡期間タイマーが所定の過渡期間（Tr）、例えば、Tr＝10msecを満了したか否かを判定し、満了するまでは直ちにＳ３２に処理を戻し、満了していればＳ４３に処理を進め、モードを「search」に変更して、Ｓ３２に処理を戻す。
【００４８】
図４に示したフローチャートは、図３（ｂ）の動作例を実現するものであったが、図３（ｂ）と一部しか相違しない図２，図３（ａ）に示した動作例も、図４に示したフローチャートを一部分変更するだけで実現できる。
【００４９】
上述した閾値決定部７により決定される閾値１２，２２、２３は、閾値変更周期（T0）ごとに、現時点の閾値を1/n倍する演算により、動的に変更されるから、振動波形の自然な減衰特性との誤差が少ない閾値が得られる。
ただし、過渡期間（Tr）経過後の時点においては、ピーク値の1/x倍としているように、後続の閾値変更周期（T0）毎に1/n倍する特性とは別扱いの処理となる。打撃操作による振動波形の減衰特性は、打撃操作の最初のピーク値と大きな相関が見られるが、この最初のピーク値から指数関数的に減少するのとは断言できないからである。
【００５０】
過渡期間における単位時間当たりの減衰率（1−1/x）/Trは、閾値変更周期毎に指数関数的に減衰する期間における単位時間当たりの減衰率（1−1/n）/T0とは独立して設定される。
例えば、過渡期間における単位時間当たりの減衰率が、閾値変更周期毎に減衰する期間における単位時間当たりの減衰率に比べて小さくなるように設定することができる。
なお、閾値変更周期（T0）を長くするほど、閾値と振動波形の自然な減衰曲線との差異が大きくなる。しかし、振動波形自体が、打撃操作毎に大きくばらついているので、上述した差異がさほど影響しない。
【００５１】
上述したフローチャートの説明において例示した数値例では、過渡期間Tr＝10msec経過後において、閾値変更周期T0＝15msecにつき、閾値がそれまでの閾値の1/n＝1/2になるようにしている。その結果、Tr＝10msec経過後において、振幅が1/32になるまでの時間は75msecである。
一般に、減衰特性は、振幅値が37％（＝e-1）になる時間が0.5〜30msecである。従って、上述した設定値は、一般的な振動の減衰特性によく適合している。また、この閾値の減衰特性は、図７を参照して後述する減衰特性の具体例にもよく適合している。
【００５２】
上述した最大値検出期間（Td）、過渡期間（Tr）、xの値、閾値変更周期（T0）、nの値は、数多くの振動波形を測定し、いずれの振動波形に対しても正常に機能するように設定すればよい。
しかし、演奏操作子、振動センサの特性に応じて振動波形が異なる。そのため、図１に示した１チップマイコンLSI８に内蔵されるRAM，フラッシュROM等の書き替え可能な記憶装置に、上述した複数の設定値のうち、変更可能とする少なくとも１つの設定値を記憶させておく。１チップマイコンLSI８に内蔵される図示されないCPUは、上述した複数の設定値のうち、変更可能とする設定値を、ユーザがスイッチ操作等により変更する設定値変更部の機能を備えるようにすればよい。
【００５３】
上述した閾値変更周期（T0）は、A/D変換サイクル（サンプリング周期）Tadに比べて十分長くすることができる。図４で例示した具体例では、閾値変更周期T0＝15msecは、A/D変換サイクル0.2msecの75倍であるから、閾値を変更する処理は、単位時間当たりの処理負荷が小さい。
特に、n＝2とすることによって、閾値を記憶するレジスタを、右1ビットシフトさせるだけで動的に閾値を変更できるから、計算に要するCPU負荷が軽くなる。
その結果、１チップマイコンLSI８のような処理能力の低いCPUであっても、また、図８を参照して説明するように、複数チャンネルの半波整流波形を処理しなければならない場合であっても、上述した機能を実現する信号処理が可能となる。
なお、nを２の羃乗、すなわち、4，8，…とした場合も同様に計算が簡単であるが、減衰率が現実の振動波形に比べて大きくなりすぎる。
【００５４】
図５は、図１に示した実施形態の打撃操作検出装置を用いる演奏操作子の第１の具体例を示す説明図である。この演奏操作子は、本願の先行出願である特願２００７−３２１９５２号として出願した電子ドラムである。
この電子ドラムは、図１に示した振動センサ１として、4個の静電型センサを使用している具体例である。より具体的には、この電子ドラムは4chの出力端子を有し、一つの打面に対し、4個（4チャンネル）の振動センサにより打撃位置を検出する。
【００５５】
図中、図５（ａ）は、固定電極５５とプリント基板５６のみを示す平面図、図５（ｂ）は、図５（ａ）における矢示Ａ−Ａ方向を見た電子ドラム（電子パッド）５０の垂直断面図である。
５１はパッド、５２は可動電極、５３は絶縁体である樹脂フィルム、５４は多数の矩形孔が形成された両面テープ、５５は同心円状に４分割され、出力用の引き出し線を有する固定電極、５６はプリント基板であって、その一面に上述した固定電極５５に形成されている。５７はシールド導体である。これらの円形の平板状部材が積層されることにより4チャンネルの静電センサを備えた電子ドラムが構成されている。
プリント基板５６の引出部５６ａにおいて、４分割された固定電極５４から接続線が引き出され、中心電極から順に、ch1〜ch4の出力端子となる。可動電極５２とシールド導体５７とは、外部で接続され、アース端子となる。ch1〜ch4の出力端子と接地端子との間に、抵抗器を介して電圧が印加される。
【００５６】
面状の可動電極５２と、この可動電極５２と所定の間隔を隔てて一面が対向するよう配設されている面状の固定電極５５を有し、この固定電極５５が複数の分割電極に分割されているから、可動電極５２と分割された各固定電極５５とにより４個の静電容量手段が構成される。
可動電極５２に圧力が印加されて変位した際の静電容量手段における静電容量の変化に基づいて、固定電極５５における各分割電極から引き出されたch1〜ch4の出力端子から信号が出力される。
【００５７】
一方、図６は、図１に示した実施形態の打撃操作検出装置を用いる演奏操作子の第２の具体例を示す説明図である。この演奏操作子は、特開２０００−２００６４号公報に示されたものとほぼ同様なスティックである。
この具体例では、スティック自体を演奏操作子として、任意の物体をたたいたときの打撃を検出する。
【００５８】
図中、６１はスティックであって、打撃を受ける本体部分である。６２は振動センサ、６３は振動センサのリード線、６４は制御部、６５はスイッチ、６６は出力ケーブルであって、打撃イベントを示す信号を音源や電子楽器等に出力するためのものである。
振動センサ６２は、スティック６１の先端部寄りに取り付けられている。
振動センサ６２として、コンデンサマイクを使用する。ただし、空気振動を振動板に受け入れるマイク開口部を接着剤で塞いで空気振動の検出を遮断し、マイク本体に伝わる振動だけを検出する。
振動センサ６２としては、この他、圧電（ピエゾ）型センサを用いることもできる。図５に示したような静電型センサにおいて、固定電極５５を分割しないで１チャンネル出力としたものを用いてもよい。
【００５９】
図７は、図１に示した振動センサ１として、図５に示した静電型センサを用いた場合の、実測データと閾値の設定例とを示すグラフである。
図７は、図５に示したパッド５１の面上において、分割された固定電極（図５の５４）のうち、ch1に対応する分割電極の上方となる位置が打撃されたとき、各分割電極から出力される振動波形を半波整流した波形の実測値を表している。
振幅が最大となる値が検出されたチャンネルに対応する分割電極において、その上方となる位置に打撃操作があったと識別できる。この一打撃に対し、全チャンネルの振動センサが、それぞれ反応していることがわかる。
【００６０】
ch1の半波整流波形が最初に立ち上がり、第１波のピーク値が93となる。次にch2の半波整流波形が立ち上がるが、第１波のピークは小さい。続いて、ch3，ch4の半波整流波形の第１波が順次立ち上がるが、そのピーク値は、43，28である。ch2の半波整流波形の最大値38は10msec以上遅れた４波目のピーク点となる。
従って、例えば、ch2に対応する打面に打撃操作がないときでも、ch2においてピークが検出される。
【００６１】
そこで、本願発明の実施形態では、各チャンネルの処理ブロックにおいて、自身のチャンネルに対応する打撃操作を検出するに際し、相関が大きい他のチャンネルに対応する打撃操作があったときに、自身のチャンネルの信号処理において、過渡期間（Tr）と動的な閾値を設定する。この過渡期間と動的な閾値は、すべてのチャンネルに共通のものとする。何れかのチャンネルに第１の打撃タイミングが検出されたときには、全部のチャンネルに、過渡期間（Tr）及び閾値を適用して、閾値を超えなければ、第２の打撃タイミングを検出しない。
そのため、閾値の値を設計するに際して、いずれのチャンネルの半波整流波形の振幅も超えることのない値にする。
【００６２】
図７に示した具体例では、各チャンネルにおけるA/D変換サイクルの周期Tadは、約0.2msecである。最大値検出期間Tdを2msc以上に設定すれば、ch1の半波整流波形の振幅最大値（値93）を検出することができる。振幅最大値を検出したタイミングから、過渡期間Tr＝10msec経過後の閾値を46.5（x＝2）とし、過渡期間経過後は、閾値変更周期T0＝15msec毎に、現在の閾値を1/2ずつ階段状に低下させている。
【００６３】
図８は、図５、図７に示した静電型センサを用いた打撃操作検出装置を示すブロック図である。
図１と同様なブロックについては、同じ符号を付し、チャンネルを示す番号を添字で示している。ただし、いずれのチャンネルも同じ処理をするため、ch2，ch3については図示を省略した。
図５に示した電子ドラム（パッド操作子）５０の振動を検出する４個の振動センサ１1〜１4（可動電極５２と分割された固定電極５５との間に形成される静電型センサ）の各出力ch1〜ch4をセンサアンプ２1〜２4で増幅し、半波整流回路３1〜３4で半波整流された半波整流波形の振幅を、チャンネルと対応づけて、複数チャンネルの半波整流波形として入力し、電子ドラム（パッド操作子）５０に対する打撃操作を検出する。
【００６４】
７３は１チップマイコンLSIであり、A/D変換器７１及び図示しないCPU等を内蔵する。A/D変換器７１は、例えば、図示しないアナログマルチプレクサにより、4チャンネルのアナログ入力を逐次サンプリング処理する。各チャンネルのA/D変換サイクルは、図１のTadと同じにしている。
内蔵CPUは、打撃操作検出部５1〜５4、振幅レベル判定部６1〜６4、閾値変更部７２の機能を実行する。閾値変更部７２は全チャンネルについて共通である。
打撃イベントを示す信号の出力は、チャンネル別に図示しているが、打撃イベントのデータにチャンネル番号を加えることにより、共通のシリアル出力インタフェースで出力される。
【００６５】
各チャンネルの振幅レベル判定部６1〜６4は、いずれかのチャンネル、図示の例では、チャンネル１の打撃操作検出部５1により検出された打撃タイミングから所定の過渡期間（Tr）が経過した後に、各チャンネルch1〜ch4の半波整流波形の振幅を閾値と比較する。
各チャンネルの打撃操作検出部５1〜５4は、各チャンネルの半波整流波形の振幅が上述した閾値を超えたことを各チャンネルch1〜ch4の振幅レベル判定部６1〜６4が判定したとき、判定されたタイミングから予め設定された最大値検出期間（Td）内において、各チャンネルch1〜ch4の半波整流波形の振幅が最大となる値を検出するとともに、最大値検出期間（Td）が経過したタイミングを、各チャンネルch1〜ch4の打撃タイミングとして検出する。
打撃操作検出部５1〜５4は、検出された半波整流波形の振幅が最大となる値（図７の例では、値93）を打撃力のデータとした打撃イベントを示す信号を、検出された打撃タイミングにおいて出力する。
【００６６】
閾値変更部７２は、いずれかのチャンネル、図示の例では、ch1の打撃操作検出部５1により検出された打撃タイミングから過渡期間（Tr）を経過したタイミングにおいて、閾値を、その過渡期間の直前に、上述したch1の打撃操作検出部５1により検出された、半波整流波形の振幅が最大となる値の1/x倍（xは、１を超える実数）とし、任意のチャンネル（第１の打撃タイミングを検出したch1に限らない）の打撃操作検出部５1〜５4により次の打撃タイミングが検出されるまでの期間において、閾値変更周期（T0）で、閾値を現在の閾値の1/n倍（nは、１を超える実数）に変更する。
【００６７】
パラメータTd，Tr，T0、x，nの値の設定は、図１〜図３と同様であるため、説明を省略する。
また、図８に示した打撃操作検出部５1〜５4、振幅レベル判定部６1〜６4、閾値変更部７２の各機能ブロックは、図４に示したフローチャートと同様な処理ステップを実行する制御プログラムにより、コンピュータに実現させることができる。
また、図２、図３（ａ）に示したように、過渡期間（Tr）中においても、半波整流波形を閾値と比較し、打撃イベントを検出するようにすることもできる。
【００６８】
図１〜図８を参照した説明では、振動センサ１の出力を半波整流又は全波整流した整流波形の振幅に基づいて、制御操作子に対する打撃操作を検出していた。これに代えて、図９，図１０を参照して説明した従来技術と同様に、振動センサ１の出力を半波整流又は全波整流したものを積分するなどして生成される、振動センサ１が出力する振動波形のエンベロープの振幅に基づいて打撃検出をするようにしてもよい。
センサが出力する振動波形のエンベロープの振幅を用いて打撃操作を検出することは、制御操作子の変更に対して柔軟に対応できないが、制御操作子に、専用の打撃操作検出装置を内蔵する場合は、エンベロープの振幅を用いても問題がない。
また、エンベロープの振幅を用いることにより、センサの出力波形に含まれる高い倍音成分やノイズ成分が除去されるから、偽の打撃操作を誤って検出しにくくなる。また、A/D変換サイクルを長くしても値をとりこぼすことがないため、単位時間当たりの処理量を少なくできる。
その際、エンベロープを生成するときの積分時定数を短くすれば、エンベロープの振幅が、整流波形の振幅に近づくことになる。
【００６９】
図８は、図５に示したような、それぞれの打撃面が共通のパッド上にある複数のチャンネルの振動センサから出力される信号に対して、打撃操作を検出するものであった。
しかし、各チャンネルの信号に相関がある場合としては、共通のフレームに複数個のパッド操作子が配設され、それぞれに振動センサが取り付けられている場合、あるいは、共通の楽器スタンドに複数個の電子ドラムが取り付けられ、それぞれに振動センサが取り付けられている場合などもある。
このような場合にも、図８に示した、共通の過渡期間や、共通の閾値を設定することにより、他の電子ドラムの打撃の影響を除去することができる。
【００７０】
上述した説明では、本発明の打撃操作検出装置を用いる演奏操作子として、電子ドラム（パッド操作子）、スティックを例示した。この他、電子鍵盤楽器において、押鍵により振動体を打撃する構造にすることにより、押鍵検出をすることもできる。
また、演奏制御用に限らず、制御操作子に加えた打撃操作を検出することにより、打撃イベントを示す信号を制御信号として、画像や映像を制御するゲーム装置、ゲームプログラムに本発明の打撃操作検出装置を用いることもできる。
【図面の簡単な説明】
【００７１】
【図１】本発明の実施の一形態である打撃操作検出装置を示すブロック図である。
【図２】図１に示した実施形態の動作を説明するための第１の波形図である。
【図３】図１に示した実施形態の動作を説明するための第２，第３の波形図である。
【図４】図１に示した実施形態において、図３（ｂ）に示した動作をコンピュータプログラムにより実現するためのフローチャートである。
【図５】図１に示した実施形態の打撃操作検出装置を用いる演奏操作子の第１の具体例を示す説明図である。
【図６】図１に示した実施形態の打撃操作検出装置を用いる演奏操作子の第２の具体例を示す説明図である。
【図７】図１に示した振動センサとして、図５に構造の概要を示した静電センサを用いた場合の、実測データと閾値の設定例とを示すグラフである。
【図８】図５、図７に示した静電型センサを用いた打撃操作検出装置を示すブロック図である。
【図９】従来の打撃操作検出装置のブロック構成図である。
【図１０】図９に示した従来の打撃操作検出装置の動作を説明するための波形図である。
【符号の説明】
【００７２】
１，１1〜１4…振動センサ、２，２1〜２4…センサアンプ、３，３1〜３4…半波整流回路、４，７１…A/D変換器、５，５1〜５4…打撃操作検出部、６，６1〜６4…振幅レベル判定部、７，７２…閾値変更部、８，７３…１チップマイコンLSI、
１１，２１…半波整流波形、１２，２２，２３…閾値、
５０…電子ドラム（電子パッド）、６１…スティック、６２…振動センサ、
８１…エンベロープ出力回路、８２…CPU、８３…１チップマイコンLSI、９１…振動波形、９２…全波整流波形、９３…エンベロープ、９４…閾値
【図１】
0005245504.tif 000002
【図２】
0005245504.tif 000003
【図３】
0005245504.tif 000004
【図４】
0005245504.tif 000005
【図５】
0005245504.tif 000006
【図６】
0005245504.tif 000007
【図７】
0005245504.tif 000008
【図８】
0005245504.tif 000009
【図９】
0005245504.tif 000010
【図１０】
0005245504.tif 000011