(57)【特許請求の範囲】
【請求項１】
波形の入力が開始された後の所定期間における当該波形のピークレベルを取得するピークレベル取得手段と、
前記所定期間において、前記波形の振動数を表す値を取得する値取得手段と、
前記ピークレベル取得手段により取得されたピークレベルと、前記値取得手段により取得された値とに基づいて、前記波形が打面の打撃に基づく波形であるか否かを判定する判定手段とを備え、
前記判定手段は、前記波形の振動数を表す値が、前記波形が所定の閾値以下の振動数で振動することを示す場合に、前記波形が打面の打撃に基づく波形であると判定し、前記波形の振動数を表す値が、前記波形が前記所定の閾値を超える振動数で振動することを示す場合に、前記波形が打面の打撃に基づく波形でないと判定する打撃検出装置。
【請求項２】
前記判定手段は、前記ピークレベルが、第１のレベルを超える場合には、前記波形の振動数を表す値とは無関係に、前記波形が打面の打撃に基づく波形であると判定することを特徴とする請求項１に記載の打撃検出装置。
【請求項３】
前記判定手段は、前記ピークレベルが、第１のレベルより小さい第２のレベル以下である場合には、前記波形の振動数を表す値とは無関係に、前記波形が打面の打撃に基づく波形でないと判定する請求項１または２に記載の打撃検出装置。
【請求項４】
前記値取得手段は、前記所定期間内における前記波形がゼロクロスした回数を、前記波形の振動数を表す値として取得する請求項１から３のいずれかに記載の打撃検出装置。
【請求項５】
前記値取得手段は、前記所定期間内における（前記波形のサンプリング毎の差分の絶対値を積算した値）／（前記積算区間におけるレベルのピーク値に基づく値）を、前記波形の振動数を表す値として取得する請求項１から３のいずれかに記載の打撃検出装置。
【請求項６】
前記値取得手段は、ヒステリシスを持たせた前記波形のレベルの増減が反転する回数を、前記波形の振動数を表す値として取得する請求項１から３のいずれかに記載の打撃検出装置。
【請求項７】
波形の入力が開始された後の所定期間において、前記波形の振動数を表す値を取得する値取得手段と、
前記波形の振動数を表す値が、前記波形が所定の閾値以下の振動数で振動することを示す場合に、前記波形が打面の打撃に基づく波形であると判定し、前記波形の振動数を表す値が、前記波形が前記所定の閾値を超える振動数で振動することを示す場合に、前記波形が打面の打撃に基づく波形でないと判定する判定手段とを備えている打撃検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、打撃検出装置に関し、打面の打撃に対する検出精度に優れる打撃検出装置に関する。
【背景技術】
【０００２】
電子打楽器には、打面の打撃による振動を検出するセンサが設けられている。従来、ノイズなどによる誤発音を防ぐために、閾値を設け、その閾値とセンサからの出力値とを比較し、発音の制御を行っていた（例えば、特許文献１）。具体的に、センサからの出力値が前記閾値を超える場合には、センサが打面の打撃による振動を検出したと判断して発音させる一方で、センサからの出力値が前記閾値以下である場合には、センサが検出した振動がノイズなどに基づくものであると判断して発音させないように制御していた。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−２０８５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、閾値とセンサからの出力値との比較に基づいて発音制御を行った場合、ノイズによる誤検出を防止できる一方で、演奏時における弱い打撃を検出できず、発音すべき音が発音されなくなることがあった。
【０００５】
本発明は、上述した事情を鑑みてなされたものであり、打面の打撃に対する検出精度に優れる打撃検出装置を提供することを目的としている。
【課題を解決するための手段および発明の効果】
【０００６】
この目的を達成するために、請求項１記載の打撃検出装置によれば、ピークレベル取得手段により取得されたピークレベル（波形の入力が開始された後の所定期間における当該波形のピークレベル）と、値取得手段により取得された値（当該所定期間における波形の振動数を表す値）とに基づいて、波形が打面の打撃に基づく波形であるか否かが、判定手段によって判定される。即ち、波形の振動数を表す値が、波形が所定の閾値以下の振動数で振動することを示す場合に、判定手段により、当該波形が打面の打撃に基づく波形であると判定される。一方で、波形の振動数を表す値が、波形が所定の閾値を超える振動数で振動することを示す場合に、判定手段により、当該波形が打面の打撃に基づく波形でないと判定される。よって、ピークレベルだけでなく、波形の振動数を表す値を考慮して、波形が打面の打撃に基づく波形であるか否かを判定するので、例えば、弱い打撃に基づくピークレベルの小さい波形が、ノイズとして誤検出されることを防止できる等、打面の打撃に対する検出精度に優れるという効果がある。
【０００９】
請求項２記載の打撃検出装置によれば、請求項１が奏する効果に加え、次の効果を奏する。ピークレベルが、第１のレベルを超える場合には、判定手段により、波形の振動数を表す値とは無関係に、波形が打面の打撃に基づく波形であると判定されるので、打撃を容易に検出できるという効果がある。
【００１０】
請求項３記載の打撃検出装置によれば、請求項１又は２が奏する効果に加え、次の効果を奏する。ピークレベルが、第１のレベルより小さい第２のレベル以下である場合には、判定手段により、波形の振動数を表す値とは無関係に、波形が打面の打撃に基づく波形でないと判定されるので、ノイズなどを容易に検出できるという効果がある。
【００１１】
請求項４記載の打撃検出装置によれば、請求項１から３のいずれかが奏する効果に加え、次の効果を奏する。所定期間内における前記波形がゼロクロスした回数が、値取得手段により、前記波形の振動数を表す値として取得される。よって、波形の振動数を表す値を容易に取得できるという効果がある。
【００１２】
請求項５記載の打撃検出装置によれば、請求項１から３のいずれかが奏する効果に加え、次の効果を奏する。所定期間内における（波形のサンプリング毎の差分の絶対値を積算した値）／（積算区間におけるレベルのピーク値に基づく値）が、値取得手段により、波形の振動数を表す値として取得される。よって、波形の振動数を表す値を容易に取得できるという効果がある。
【００１３】
請求項６記載の打撃検出装置によれば、請求項１から３のいずれかが奏する効果に加え、次の効果を奏する。ヒステリシスを持たせた波形のレベルの増減が反転する回数が、値取得手段により、波形の振動数を表す値として取得される。よって、波形の振動数を表す値を容易に取得できるという効果がある。
【００１４】
請求項７記載の打撃検出装置によれば、波形の入力が開始された後の所定期間において、波形の振動数を表す値が、値取得手段により取得される。値取得手段により取得された値が、波形が所定の閾値以下の振動数で振動することを示す場合には、当該波形が打面の打撃に基づく波形であると判定される。一方で、波形の振動数を表す値が、波形が所定の閾値を超える振動数で振動することを示す場合には、当該波形が打面の打撃に基づく波形でないと判定される。よって、波形の振動数を表す値に基づいて、当該波形が打面の打撃に基づく波形か否かを区別できる。これにより、例えば、弱い打撃に基づくピークレベルの小さい波形が、ノイズとして誤検出されることを防止できる等、打面の打撃に対する検出精度に優れるという効果がある。
【図面の簡単な説明】
【００１５】
【図１】音源装置の電気的構成を示すブロック図である。
【図２】（ａ）は、打撃に基づく電圧波形（振動センサからの出力波形）の電圧−時間グラフであり、（ｂ）は、ノイズに基づく電圧波形の電圧−時間グラフである。
【図３】振動センサから出力される電圧波形のピークレベルと、その電圧波形のゼロクロス回数との関係を示すグラフである。
【図４】ＣＰＵが実行するＡ／Ｄ割り込み処理を示すフローチャートである。
【図５】変形例を説明するためのグラフである。
【発明を実施するための形態】
【００１６】
以下、本発明の好ましい実施形態について、添付図面を参照して説明する。図１は、本発明の打撃検出装置１００を搭載する音源装置１の電気的構成を示すブロック図である。音源装置１は、接続されるパッド５１が打撃されたことに基づく楽音（音）を生成し、生成した楽音を、接続されるスピーカ４１へと出力する装置である。
【００１７】
詳細は後述するが、本実施形態の音源装置１は、入力部１５を介して入力された、パッド５１に設けられている振動センサ５１ａから出力された電圧波形のゼロクロス回数と、当該電圧波形のピークレベルの値とに基づいて、入力部１５を介して入力された電圧波形（以下、単に「入力波形」と称す）が、打撃に基づくものであるか否かを判定するように構成されている。よって、弱い打撃に基づくピークレベルの小さい入力波形が、ノイズとして誤検出されることを防止され、弱い打撃に対する検出感度を向上させている。
【００１８】
音源装置１は、ＣＰＵ１１と、ＲＯＭ１２と、ＲＡＭ１３と、操作パネル１４と、入力部１５と、音源１６と、デジタルアナログコンバータ（ＤＡＣ）１７とを有している。なお、本発明の打撃検出装置１００は、ＣＰＵ１１と、ＲＯＭ１２と、ＲＡＭ１３とから構成される。各部１１〜１７は、バスライン１８を介して互いに接続される。入力部１５には、パッド５１の振動センサ５１ａが接続される。
【００１９】
ＣＰＵ１１は、ＲＯＭ１２に記憶される固定値やプログラム、ＲＡＭ１３に記憶されているデータなどに従って、音源装置１の各部を制御する中央制御装置である。ＣＰＵ１１は、クロック信号を計数することにより、時刻を計時するタイマ（図示せず）を内蔵している。
【００２０】
ＲＯＭ１２は、書き替え不能な不揮発性メモリであって、ＣＰＵ１１や音源１６に実行させる制御プログラム１２ａや、この制御プログラム１２ａが実行される際にＣＰＵ１１により参照される固定値データ（図示せず）などが記憶される。なお、図４のフローチャートに示す各処理は、制御プログラム１２ａに基づいて実行される。
【００２１】
ＲＡＭ１３は、書き替え可能な揮発性メモリであり、ＣＰＵ１１が制御プログラム１２ａを実行するにあたり、各種のデータを一時的に記憶するためのテンポラリエリアを有する。ＲＡＭ１３のテンポラリエリアには、ピークホールド値メモリ１３ａと、波形バッファ１３ｂと、ピークホールド用カウンタ１３ｃと、ピークホールド中フラグ１３ｄと、発音中フラグ１３ｅとが設けられている。ＲＡＭ１３に設けられている上記各部１３ａ〜１３ｅは、いずれも、音源装置１に電源が投入されたときに初期化される。
【００２２】
ピークホールド値メモリ１３ａは、入力波形（入力部１５を介して振動センサ５１ａから入力された電圧波形）のピークレベルを保持するメモリである。振動センサ５１ａから入力波形の入力が開始されると、所定のピークホールド期間内において、ＣＰＵ１１がサンプリングした入力波形のレベルが最大値を更新する毎に、その値がピークホールド値メモリ１３ａに記憶される。ピークホールド期間の終了時におけるピークホールド値メモリ１３ａの値が、入力波形のピークレベル（最大値）とされる。
【００２３】
波形バッファ１３ｂは、ＣＰＵ１１がピークホールド期間中にサンプリングした入力波形のレベルを時系列に記憶するバッファである。波形バッファ１３ｂに蓄積された入力波形のレベルは、ピークホールド期間が終了すると、入力波形のゼロクロス回数を取得するために使用される。
【００２４】
ピークホールド用カウンタ１３ｃは、振動センサ５１ａからの入力波形のピーク値を得るためのピークホールド期間を計時するカウンタである。ピークホールド用カウンタ１３ｃは、入力波形の入力が開始された後、入力波形のレベルが所定の閾値Ｌ２（図３参照）を超えた場合に、計時が開始される。なお、閾値Ｌ２は、入力波形のレベルに対して設けられる閾値であり、入力波形がノイズに基づくものであるか否かを判定するための閾値である。計時開始後、予め規定されているピークホールド期間（本実施形態では、２ｍｓｅｃ）が経過すると、計時が停止される。
【００２５】
ピークホールド中フラグ１３ｄは、ピークホールド用カウンタ１３ｃによるピークホールド期間の計時中であるか否かを示すフラグである。具体的に、ピークホールド中フラグ１３ｄがオンに設定されている場合には、ピークホールド期間の計時中であることを示す。ピークホールド中フラグ１３ｄは、ピークホールド用カウンタ１３ｃによる計時が開始されるとオンに設定され、当該計時が終了するとオフに設定される。
【００２６】
発音中フラグ１３ｅは、音源装置１がパッド５１の打撃に基づく楽音の発音中であるか否かを示すフラグである。具体的に、発音中フラグ１３ｅがオンに設定されている場合に、発音中であることを示す。発音中フラグ１３ｅは、振動センサ５１ａから入力された入力波形がパッド５１の打撃に基づくものであると判定され、音源１６から楽音が発音されたことに伴いオンに設定される。オンに設定された発音中フラグ１３ｅは、所定時間後、又は、入力波形のレベルが所定レベル以下に下がった場合にオフに設定される。
【００２７】
操作パネル１４は、音量などの各種パラメータを設定する操作子と、その操作子により設定されたパラメータの値などを表示する表示器とが設けられたパネルであり、ユーザインタフェイスとして使用される。
【００２８】
入力部１５は、パッド５１に設けられた振動センサ５１ａを接続するインターフェイスである。振動センサ５１ａから出力されたアナログ信号波形は、入力部１５を介して音源装置１に入力される。入力部１５には、アナログデジタルコンバータ（図示せず）が内蔵されている。振動センサ５１ａから入力されるアナログ信号波形は、アナログデジタルコンバータによって所定時間毎にデジタル値に変換される。ＣＰＵ１１は、入力部１５において変換されたデジタル値に基づいて、パッド５１が打撃されたか否かの判定を行う。詳細は後述するが、ＣＰＵ１１は、入力波形のピークレベルが閾値Ｌ１（図３参照）を超えるか、入力波形のゼロクロス回数が所定回数を超えた場合に、パッド５１が打撃されたと判断し、パッド５１に対応する音色の楽音をピークレベルに応じた音量で出力するよう指示する発生指示を音源１６へ出力する。
【００２９】
音源１６は、ＣＰＵ１１から楽音の発生指示を受けた場合に、その発生指示に従う音色及び音量の楽音を発生する。音源１６には、波形ＲＯＭ（図示せず）が内蔵される。この波形ＲＯＭには、パッド５１に対応する音色のデジタル楽音が記憶されている。また、音源１６には、フィルタやエフェクトなどの処理を行う、図示されないＤＳＰ（Digital  Signal  Processor）が内蔵される。音源１６は、発生指示がＣＰＵ１１から入力された場合に、その発生指示に従う音色のデジタル楽音を波形ＲＯＭから読み出し、ＤＳＰにおいてフィルタやエフェクトなどの所定の処理を行い、処理後のデジタル楽音をＤＡＣ１７へ出力する。ＤＡＣ１７は、入力されたデジタル楽音をアナログ楽音に変換し、音源装置１の外部に設けられるスピーカ４１へ出力する。これにより、パッド５１の打撃に基づく楽音がスピーカ４１から放音される。
【００３０】
次に、図２を参照して、振動センサ５１ａから出力される電圧波形（振動センサ５１ａからの出力波形）の特性について説明する。図２（ａ）は、打撃に基づく電圧波形の波形グラフであり、図２（ｂ）は、ノイズに基づく電圧波形の波形グラフである。なお、本実施形態では、図２（ｂ）の波形グラフは、スティックカウントノイズ（打撃用のスティックを打ち鳴らした場合に発生するノイズ）に基づくものである。図２（ａ）及び（ｂ）に示す波形グラフは、いずれも、縦軸が電圧を示し、横軸が時間を示す。ただし、横軸は、両グラフともに同じスケールであるが、縦軸は、図２（ａ）のグラフの方が、図２（ｂ）のグラフより１０倍程度大きいスケールとなっている。
【００３１】
図２（ａ）に示すように、打撃に基づく電圧波形は、波形の出力開始時刻ｔ０から、ピークホールド期間に相当する２ｍｓｅｃ後の時刻ｔ１までの期間内に、電圧がゼロの点を通過して正又は負の値となること（即ち、ゼロクロス）が１回も生じていない。その一方で、図２（ｂ）に示すように、ノイズに基づく電圧波形は、波形の出力開始時刻ｔ０から、時刻ｔ１までの期間（２ｍｓｅｃ）内に、多数のゼロクロスが生じている。
【００３２】
図２（ａ）及び（ｂ）の波形グラフによれば、打撃に基づく電圧波形と、ノイズに基づく電圧波形とでは、出力開始後の所定期間（ここでは、２ｍｓｅｃ）内におけるゼロクロスの回数が大きく異なることが明白である。
【００３３】
図３は、振動センサ５１ａから出力される電圧波形（即ち、入力部１５から入力される入力波形）のピークレベルと、その電圧波形のゼロクロス回数との関係を示すグラフである。なお、図３のピークレベル及びゼロクロス回数は、いずれも、電圧波形の出力開始（入力波形の入力開始）から所定期間内におけるピークレベル及びゼロクロス回数である。
【００３４】
図３のグラフにおいて、縦軸は、電圧波形のピークレベルを示し、横軸は、電圧波形のゼロクロス回数を示す。このグラフにおける黒塗りの菱形のシンボル（◆）は、打撃に基づく電圧波形を示す。一方、黒塗りの四角形のシンボル(■)は、ノイズ（スティックカウントノイズ）に基づく電圧波形を示す。
【００３５】
図３のグラフによれば、打撃に基づく電圧波形（◆）は、ピークレベルが比較的大きく、かつ、ゼロクロス回数が少ない傾向にあることを示す。一方で、ノイズに基づく電圧波形（■）は、ピークレベルが比較的小さく、かつ、ゼロクロス回数が多い傾向にあることを示す。
【００３６】
従来、入力波形のピークレベルが閾値を超えた場合には、打撃であると判定して発音させ、当該ピークレベルが閾値以下である場合には、ノイズであると判定して発音させないように、発音の制御を行っていた。しかし、図３のグラフによれば、打撃であるか否かの判定を行うレベルの閾値を、ピークレベルが高いノイズよりも大きく、ノイズを発生させない閾値Ｌ１に設定した場合、ピークレベルが閾値Ｌ１以下である一部の打撃を検出することができない。一方、打撃であるか否かの判定を行うレベルの閾値を、ピークレベルが小さい打撃よりも小さく、弱い打撃を検出可能にする閾値Ｌ２に設定した場合には、ノイズが打撃と誤判定されることになる。
【００３７】
一方、ゼロクロス回数は、打撃に基づく電圧波形（◆）と、ノイズに基づく電圧波形（■）とで明白な相違がある。そこで、本実施形態の音源装置１（打撃検出装置１００）では、閾値Ｌ１と閾値Ｌ２との間のレベル区間について、ゼロクロス回数の閾値Ｚ１を設ける。これにより、閾値Ｌ１と閾値Ｌ２との間のレベル区間内に含まれ得る打撃に基づく電圧波形（入力波形）と、ノイズに基づく電圧波形（入力波形）とを分けることができる。具体的に、閾値Ｌ１と閾値Ｌ２との間のレベル区間内に含まれ得るピークレベルの入力波形のうち、ゼロクロス回数が閾値Ｚ１以下のものは打撃であり、閾値Ｚ１を超えるものはノイズであると分離できる。
【００３８】
つまり、本実施形態の音源装置１（打撃検出装置１００）は、ピークレベルが閾値Ｌ１を超える入力波形（即ち、領域Ａ１に含まれる入力波形）と、ピークレベルが閾値Ｌ１と閾値Ｌ２との間にあり、かつ、ゼロクロス回数が閾値Ｚ１以下である入力波形（即ち、領域Ａ２に含まれる入力波形）とを、打撃に基づく入力波形であると判定する。一方、音源装置１（打撃検出装置１００）は、ピークレベルが閾値Ｌ２以下である入力波形（即ち、領域Ａ３に含まれる入力波形）と、ピークレベルが閾値Ｌ１と閾値Ｌ２との間にあり、かつ、ゼロクロス回数が閾値Ｚ１を超える入力波形（即ち、領域Ａ４に含まれる入力波形）とを、ノイズに基づく入力波形であると判定する。なお、図３では、ノイズに基づく入力波形であると判定される領域（領域Ａ３，Ａ４）を着色領域として表わし、打撃に基づく入力波形であると判定される領域（領域Ａ１，Ａ２）との区別を分かり易くしている。
【００３９】
このように、本実施形態の音源装置１（打撃検出装置１００）によれば、打撃であるか否かの判定を、入力波形（振動センサ５１ａから出力された電圧波形）のピークレベルと、入力波形のゼロクロス回数とに基づいて行うので、ピークレベルが小さい弱い打撃とノイズとを明確に区別できる。よって、弱い打撃を確実に検出できるとともに、ノイズが打撃と誤判定されることも防止できる。
【００４０】
次に、図４を参照して、上記構成を有する音源装置１（打撃検出装置１００）のＣＰＵ１１が実行する処理について説明する。図４は、ＣＰＵ１１が実行するＡ／Ｄ割り込み処理を示すフローチャートである。Ａ／Ｄ割り込み処理は、ＣＰＵ１１が、入力部１５に入力されてデジタル値に変換された入力波形（振動センサ５１ａから出力された電圧波形）のレベルを定期的にサンプリングする処理である。本実施形態では、Ａ／Ｄ割り込み処理は、ＣＰＵ１１に内蔵されるタイマ（図示せず）により０．１ｍｓｅｃ毎に実行される。
【００４１】
まず、ＣＰＵ１１は、振動センサ５１ａから出力された電圧波形のレベルを入力部１５から取得する（Ｓ４０１）。次に、発音中フラグ１３ｅがオンであれば（Ｓ４０２：Ｙｅｓ）、発音中であるので、かかる場合には、ＣＰＵ１１は、本処理を終了する。
【００４２】
一方、発音中フラグ１３ｅがオフであり、かつ、ピークホールド中フラグ１３ｄがオフであるとＣＰＵ１０が判定した場合には（Ｓ４０２：Ｎｏ，Ｓ４０３：Ｎｏ）、発音中でなく、かつ、ピークホールド期間の計時中でないので、かかる場合には、ＣＰＵ１１は、取得したレベルの絶対値が、閾値Ｌ２（入力波形がノイズに基づくものであるか否かを判定するレベルの閾値）を超えるか否かを判定する（Ｓ４１５）。
【００４３】
Ｓ４１５において、取得したレベルの絶対値が閾値Ｌ２以下であるとＣＰＵ１０が判定した場合（Ｓ４１５：Ｎｏ）、本処理を終了する。一方、Ｓ４１５において、取得したレベルの絶対値が閾値Ｌ２を超えるとＣＰＵ１０が判定した場合（Ｓ４１５：Ｙｅｓ）、ＣＰＵ１１は、取得したレベルの絶対値を、ピークホールド値メモリ１３ａにピークレベルとして上書きして記憶する（Ｓ４１６）。
【００４４】
次に、ＣＰＵ１１は、ピークホールド用カウンタ１３ｃによる計時をスタートして、ピークホールド期間の計時を開始し（Ｓ４１７）、ピークホールド中フラグ１３ｄをオンに設定する（Ｓ４１８）。なお、計時をスタートしたピークホールド用カウンタ１３ｃは、ＣＰＵ１１が定期的に実行する図示されないカウント処理の中で更新される。次に、ＣＰＵ１０は、波形バッファ１３ｂをクリアし（Ｓ４１９）、取得したレベルを、波形バッファ１３ｂに記憶し（Ｓ４２０）、本処理を終了する。
【００４５】
一方、発音中フラグ１３ｅがオフであり、かつ、ピークホールド中フラグ１３ｄがオンであるとＣＰＵ１０が判定した場合には（Ｓ４０２：Ｎｏ，Ｓ４０３：Ｙｅｓ）、ピークホールド期間の計時中であるので、かかる場合には、ＣＰＵ１１は、Ｓ４０１において取得したレベルが、ピークホールド値メモリ１３ａに記憶されているピークレベルを超えるか否かを判定する（Ｓ４０４）。
【００４６】
Ｓ４０４において、取得したレベルがピークレベルを超える場合（Ｓ４０４：Ｙｅｓ）、ＣＰＵ１１は、ピークホールド値メモリ１３ａに記憶されるピークレベルを、取得したレベルに更新し（Ｓ４０５）、処理をＳ４０６へ移行する。一方、Ｓ４０４において、取得したレベルの絶対値がピークレベル以下である場合には（Ｓ４０４：Ｎｏ）、ＣＰＵ１１は、処理をＳ４０６へ移行する。Ｓ４０６において、ＣＰＵ１１は、取得したレベルを、波形バッファ１３ｂに追加して記憶する（Ｓ４０６）。
【００４７】
次に、ＣＰＵ１１は、ピークホールド用カウンタ１３ｃの値がピークホールド期間（本実施形態では、２ｍｓｅｃ）を超えたか否かを判定する（Ｓ４０７）。Ｓ４０７において、ピークホールド用カウンタ１３ｃの値がピークホールド期間を未だ超えていないとＣＰＵ１１が判定した場合（Ｓ４０７：Ｎｏ）、ＣＰＵ１１は、本処理を終了する。
【００４８】
一方、Ｓ４０７において、ピークホールド用カウンタ１３ｃの値がピークホールド期間を超えたとＣＰＵ１１が判定した場合（Ｓ４０７：Ｙｅｓ）、ＣＰＵ１１は、ピークホールド用カウンタ１３ｃを停止し（Ｓ４０８）、ピークホールド中フラグ１３ｄをオフに設定する（Ｓ４０９）。なお、ＣＰＵ１１は、Ｓ４０８においてピークホールド用カウンタ１３ｃを停止した後、ピークホールド用カウンタ１３ｃをゼロクリアする。
【００４９】
次に、ＣＰＵ１１は、ピークホールド値メモリ１３ａに記憶されるピークレベルが、閾値Ｌ１（入力波形が打撃に基づくものであるか否かを判定するレベルの閾値）を超えるか否かを判定する（Ｓ４１０）。Ｓ４１０において、ピークレベルが閾値Ｌ１を超えるとＣＰＵ１１が判定した場合には（Ｓ４１０：Ｙｅｓ）、ＣＰＵ１１は、入力波形が打撃に基づくものであると判断して、発音処理を実行する（Ｓ４１３）。具体的に、Ｓ４１３において、ＣＰＵ１１は、パッド５１の楽音をピークレベルに応じた音量で発生させるための発生指示を音源１６へ出力する。ＣＰＵ１１は、発音処理（Ｓ４１３）の実行後、発音フラグ１３ｅをオンに設定し（ＳＳ４１４）、本処理を終了する。
【００５０】
一方、Ｓ４１０において、ピークレベルが閾値Ｌ１以下であるとＣＰＵ１１が判定した場合には（Ｓ４１０：Ｎｏ）、ＣＰＵ１１は、波形バッファ１３ｂに記憶される波形のゼロクロス回数をカウントする（Ｓ４１１）。次に、ＣＰＵ１１は、カウントしたゼロクロス回数が閾値Ｚ１を超えるか否かを判定する（Ｓ４１２）。
【００５１】
Ｓ４１２において、カウントしたゼロクロス回数が閾値Ｚ１を越えるとＣＰＵ１１が判定した場合には（Ｓ４１２：Ｙｅｓ）、ＣＰＵ１１は、入力波形がノイズに基づくものであると判断して、本処理を終了する。一方、Ｓ４１２において、カウントしたゼロクロス回数が閾値Ｚ１以下であるとＣＰＵ１１が判定した場合には（Ｓ４１２：Ｎｏ）、ＣＰＵ１１は、入力波形が打撃に基づくものであると判断して、発音処理を実行する（Ｓ４１３）。
【００５２】
以上説明した通り、本実施形態の音源装置１（打撃検出装置１００）によれば、入力波形のピークレベルだけでなく、入力波形の振動数を表す値を考慮して、入力波形が打面の打撃に基づく波形であるか否かを判定するので、弱い打撃に基づくピークレベルの小さい波形が、ノイズとして誤検出されることを防止することができる。よって、打面（パッド５１）の打撃に対する検出精度に優れる。
【００５３】
入力波形の振動数を表す値としては、入力波形の振動数を表わすゼロクロス回数を用いるので、所定期間（本実施形態では、ピークホールド期間である２ｍｓｅｃ）分の入力波形から容易にその値を取得することができる。また、ピークホールド期間内の入力波形から取得されたゼロクロス回数に基づいて、打撃に基づく波形であるか否かの判断を行うので、ピークホールド以外の余分な遅延を伴うことなく、打面の打撃に対する検出精度を向上させることができる。また、フィルタを通過させる必要もないので、その点においても、余分な遅延を伴うことなく、打面の打撃に対する検出精度を向上させることができる。
【００５４】
パッド５１が打撃されたことにより振動センサ５１ａから出力される電圧波形に高周波が乗り、波形のゼロクロス回数が増えることもあり得る。しかし、本実施形態の音源装置１（打撃検出装置１００）によれば、ピークレベルが閾値Ｌ１を超える入力波形は、ゼロクロス回数とは無関係に、パッド５１の打撃に基づく波形であると判断されるので、打面（パッド５１）の打撃を容易かつ確実に検出できる。
【００５５】
また、ピークレベルが閾値Ｌ２以下である入力波形は、ゼロクロス回数とは無関係に、パッド５１の打撃に基づく波形でないと判断されるので、ノイズなどを容易に検出できる。
【００５６】
以上、実施形態に基づき本発明を説明したが、本発明は上記形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の変形改良が可能であることは容易に推察できるものである。
【００５７】
例えば、上記実施形態では、ノイズとして、スティックカウントノイズを例示した。つまり、音源装置１（打撃検出装置１００）が、スティックカウントノイズを除去できることを例示した。上記実施形態において例示したスティックカウントノイズに限らず、スティックカウントノイズ以外の各種ノイズや、外部の音を除去するものとして、本発明を適用してもよい。よって、本発明によれば、打面の打撃に対する検出精度に優れる。
【００５８】
例えば、ユーザが、パッド５１とアコースティックドラムとを混ぜて使用する場合に、音源装置１（打撃検出装置１００）は、パッド５１の振動センサ５１ａが拾ったアコースティックドラムの打撃音を、入力波形のピークレベルと、波形の振動数を表す値（例えば、ゼロクロス回数）とに基づいて除去するものであってもよい。あるいは、音源装置１（打撃検出装置１００）は、モニタースピーカから放音される他の楽器の音などを振動センサ５１ａが拾った場合にも、入力波形のピークレベルと、波形の振動数を表す値（例えば、ゼロクロス回数）とに基づいて、その音を除去するものであってもよい。
【００５９】
また、上記実施形態では、図３に示したように、ピークレベルの閾値Ｌ１，Ｌ２と、ゼロクロス回数の閾値Ｚ１とに基づいて、入力波形が、打撃に基づくものであるか、ノイズに基づくものであるかを判定した。これに換えて、ピークレベルの閾値Ｌ２を使用せず、ピークレベルの閾値Ｌ１と、ゼロクロス回数の閾値Ｚ１とに基づいて、入力波形が打撃に基づくものであるか否かを判定する構成としてもよい。
【００６０】
かかる場合には、音源装置１（打撃検出装置１００）は、ピークレベルが閾値Ｌ１を超える入力波形と、ピークレベルが閾値Ｌ１以下であり、かつ、ゼロクロス回数が閾値Ｚ１以下である入力波形とを、打撃に基づく入力波形であると判定する。一方、音源装置１（打撃検出装置１００）は、ピークレベルが閾値Ｌ１以下であり、かつ、ゼロクロス回数が閾値Ｚ１を超える入力波形を、ノイズに基づく入力波形であると判定する。
【００６１】
あるいは、ピークレベルの閾値Ｌ１，Ｌ２を使用せず、ゼロクロス回数の閾値Ｚ１に基づいて、入力波形が打撃に基づくものであるか否かを判定する構成としてもよい。かかる場合には、音源装置１（打撃検出装置１００）は、ゼロクロス回数が閾値Ｚ１以下である入力波形を、打撃に基づく入力波形であると判定する。一方、音源装置１（打撃検出装置１００）は、ゼロクロス回数が閾値Ｚ１を超える入力波形を、ノイズに基づく入力波形であると判定する。
【００６２】
図５（ａ）及び（ｂ）は、上記変形例を説明するグラフである。図５（ａ）及び（ｂ）に示すグラフは、閾値により区分される領域（領域Ｂ１〜Ｂ３，領域Ｃ１，Ｃ２）が異なる以外、図３に示したグラフと同一のグラフである。
【００６３】
ピークレベルの閾値Ｌ１と、ゼロクロス回数の閾値Ｚ１とに基づいて、入力波形が打撃に基づくものであるか否かを判定する場合には、図５（ａ）のグラフに示すように、ピークレベルが閾値Ｌ１を超える領域Ｂ１と、ピークレベルが閾値Ｌ１以下であり、かつ、ゼロクロス回数が閾値Ｚ１以下である領域Ｂ２とに含まれる入力波形が、打撃に基づく入力波形であると判定される。一方で、ピークレベルが閾値Ｌ１以下であり、かつ、ゼロクロス回数が閾値Ｚ１を超える着色領域Ｂ３に含まれる入力波形が、ノイズに基づく入力波形であると判定される。
【００６４】
また、ゼロクロス回数の閾値Ｚ１に基づいて、入力波形が打撃に基づくものであるか否かを判定する場合には、図５（ｂ）のグラフに示すように、ゼロクロス回数が閾値Ｚ１以下である領域Ｃ１に含まれる入力波形が、打撃に基づく入力波形であると判定される。一方で、ゼロクロス回数が閾値Ｚ１を超える着色領域Ｃ２に含まれる入力波形が、ノイズに基づく入力波形であると判定される。
【００６５】
ただし、パッド５１が打撃されたことにより振動センサ５１ａから出力される電圧波形に、高周波が乗り、波形のゼロクロス回数が増えることもあり得るため、図３や図５（ａ）に示すように、閾値Ｌ１（ピークレベルが高いノイズよりも大きく、ノイズを発生させない閾値）を少なくとも設けることが好ましい。
【００６６】
また、上記実施形態では、ピークレベルが閾値Ｌ１を超える入力波形と、ピークレベルが閾値Ｌ１と閾値Ｌ２との間にあり、かつ、ゼロクロス回数が閾値Ｚ１以下である入力波形とを、打撃に基づく入力波形であると判定し、その一方で、ピークレベルが閾値Ｌ２以下である入力波形と、ピークレベルが閾値Ｌ１と閾値Ｌ２との間にあり、かつ、ゼロクロス回数が閾値Ｚ１を超える入力波形とを、ノイズに基づく入力波形であると判定した。つまり、入力波形のピークレベルとゼロクロス回数とが所定の関係を満たすか否かに応じて、その入力波形が打撃に基づくものであるか否かを判定した。
【００６７】
上記「所定の関係」としては、上記実施形態において例示した関係に限定されるものではない。例えば、ｙをピークレベルとし、ｘをゼロクロス回数とした場合における所定の関数で表わされる線より上方に含まれる入力波形を、打撃に基づくものと判定し、当該線より下方に含まれる入力波形を、ノイズに基づくものと判定するようにしてもよい。
【００６８】
上記「所定の関数」としては、以下の関数などを例示できる。
直線：ｙ＝ａ（ｘ−ｂ）
二次曲線：ｘ＝ａｙ２＋ｂ
Ｓ字曲線：ｙ＝ａ（ａｒｃｔａｎ（ｘ−ｂ））＋ｃ
円（楕円）弧と直線の組み合わせ：ｘ＜ａの場合、（ｘ−ａ）２＋ｙ２＝ａ２，ｘ≧ａの場合、ｘ＝ａ
ただし、いずれの式についても、ｙ≧０，ａ≧０，ｂ≧０，ｃ≧０
【００６９】
また、上記実施形態では、所定期間（例えば、２ｍｓｅｃ）内における入力波形のピークレベルとゼロクロス回数とが所定の関係を満たすか否かに応じて、その入力波形が打撃に基づくものであるか否かを判定したが、これらの値のうち、波形の振動数を表す値であるゼロクロス回数については、波形の振動数を表す他の値を採用できる。
【００７０】
例えば、所定期間内における入力波形のサンプリング毎の差分の絶対値を積算した値を、同期間内における積算区間の絶対値のピーク値で除した値を、ゼロクロス回数に換わる波形の振動数を表す値として採用してもよい。かかる値も、ゼロクロス回数と同様に、入力波形の振動数を表わす値である。なお、「絶対値のピーク値」の代わりに、「正のピーク値」や、「負のピーク値」や、「正のピーク値と負のピーク値との差」としてもよい。かかる値は、ゼロクロス回数に比べて処理が煩雑になるが、波形に直流ノイズが乗ってゼロクロスしない状況が生じるか否かに依存しない点が利点である。
【００７１】
別の例としては、所定期間内におけるヒステリシスを持たせた入力波形のレベルの増減が反転する回数をカウントし、その反転回数を、ゼロクロス回数に換わる波形の振動数を表す値として採用してもよい。かかる値も、ゼロクロス回数と同様に、入力波形の振動数を表わす値である。具体的に、入力部１５におけるアナログデジタルコンバータで通常乗る程度のノイズより大きい閾値を設け、前回値からの差分が当該閾値を超えた場合に値を更新しつつ、今回値が前回値から増加したのか減少したのかを検出する。このとき、前回値からの増減が反転していればカウントする。かかる値もまた、ゼロクロス回数に比べて処理が煩雑になるが、波形に直流ノイズが乗ってゼロクロスしない状況が生じるか否かに依存しない点が利点である。
【００７２】
また、上記実施形態では、ゼロクロス回数のカウントを、ピークホールド期間の終了後に実行する構成としたが、ゼロクロス回数は、ピークホールド期間中に随時カウントする構成としてもよい。
【００７３】
また、上記実施形態では、ゼロクロス回数に基づいて、入力波形がノイズに基づくものであると判断された場合には、その入力波形を発音させない（即ち、当該ノイズを除去する）ようにするだけであった。これに換えて、例えば、図３におけるゼロクロス回数とピークレベルとの領域を限定してスティックカウントノイズを他のノイズと区別して検出し、積極的にスティックカウント（ノイズ）を検出し、タップテンポなどに利用する構成としてもよい。
【００７４】
また、上記実施形態で挙げた数値は一例であり、他の数値を採用することは当然可能である。例えば、上記実施形態では、ピークホールド期間として、２ｍｓｅｃを例示したが、この期間は、打面の種類（例えば、大きさや材質など）と、打撃センサの特性との組み合わせに応じた値が適宜採用される。
【００７５】
また、上記実施形態では、閾値として、ピークレベルの閾値を２つ（Ｌ１，Ｌ２）と、ゼロクロス回数の閾値を１つ（Ｚ１）とを例示したが、ピークレベル及びゼロクロス回数ともに、閾値の数は適宜設定可能である。そして、打撃と判断される領域、及び、ノイズと判断される領域は、縦軸（ピークレベル）の閾値と横軸（ゼロクロス回数）の閾値とにより区切られる各領域に対して適宜設定可能である。
【００７６】
また、上記実施形態では、打撃検出装置１００が、１つのパッド５１に対する打撃を検出する構成としたが、打撃検出装置１００により、複数のパッドのそれぞれに対する打撃を検出する構成としてもよい。かかる場合には、図４のＡ／Ｄ割り込み処理を、対象とするパッド毎に実行するようにすればよい。また、上記実施形態では、打撃検出装置１００が、音源装置１に内蔵される構成としたが、打撃検出装置１００が、音源装置と別体であってもよい。また、打撃検出装置１００が、パッド（パッド５１）を有する電子打楽器に内蔵されていてもよい。
【００７７】
上記実施形態において、ピークレベル取得手段としては、Ｓ４０４，Ｓ４０５，Ｓ４１６が例示される。また、値取得手段としては、Ｓ４０６，Ｓ４１１が例示される。また、請求項１における判定手段としては、Ｓ４１０，Ｓ４１２が例示される。
【符号の説明】
【００７８】
１      音源装置
１１    ＣＰＵ（打撃検出装置の一部）
１２    ＲＯＭ（打撃検出装置の一部）
１３    ＲＡＭ（打撃検出装置の一部）
【図１】
0005904401.tif 000002
【図２】
0005904401.tif 000003
【図４】
0005904401.tif 000004
【図３】
0005904401.tif 000005
【図５】
0005904401.tif 000006