特許第5904401号(P5904401)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ローランド株式会社の特許一覧

<>
  • 特許5904401-打撃検出装置 図000002
  • 特許5904401-打撃検出装置 図000003
  • 特許5904401-打撃検出装置 図000004
  • 特許5904401-打撃検出装置 図000005
  • 特許5904401-打撃検出装置 図000006
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5904401
(24)【登録日】2016年3月25日
(45)【発行日】2016年4月13日
(54)【発明の名称】打撃検出装置
(51)【国際特許分類】
   G10H 1/00 20060101AFI20160331BHJP
   G10G 1/00 20060101ALI20160331BHJP
   G10L 25/51 20130101ALI20160331BHJP
【FI】
   G10H1/00 B
   G10G1/00
   G10L25/51
【請求項の数】7
【全頁数】14
(21)【出願番号】特願2012-4145(P2012-4145)
(22)【出願日】2012年1月12日
(65)【公開番号】特開2013-142860(P2013-142860A)
(43)【公開日】2013年7月22日
【審査請求日】2015年1月7日
(73)【特許権者】
【識別番号】000116068
【氏名又は名称】ローランド株式会社
(74)【代理人】
【識別番号】110000534
【氏名又は名称】特許業務法人しんめいセンチュリー
(72)【発明者】
【氏名】須佐美 亮
【審査官】 間宮 嘉誉
(56)【参考文献】
【文献】 特開昭62−156698(JP,A)
【文献】 特開2000−20064(JP,A)
【文献】 特開2000−89792(JP,A)
【文献】 特開2009−180813(JP,A)
【文献】 実開昭63−164797(JP,U)
【文献】 特開2010−271428(JP,A)
【文献】 特開2009−258200(JP,A)
【文献】 特開平10−20854(JP,A)
【文献】 米国特許第5438529(US,A)
(58)【調査した分野】(Int.Cl.,DB名)
G10G 1/00−3/04
G10G 7/00−7/02
G10H 1/00−7/12
G10L 21/00−25/93
Science Direct
IEEE Xplore
CiNii
(57)【特許請求の範囲】
【請求項1】
波形の入力が開始された後の所定期間における当該波形のピークレベルを取得するピークレベル取得手段と、
前記所定期間において、前記波形の振動数を表す値を取得する値取得手段と、
前記ピークレベル取得手段により取得されたピークレベルと、前記値取得手段により取得された値とに基づいて、前記波形が打面の打撃に基づく波形であるか否かを判定する判定手段とを備え
前記判定手段は、前記波形の振動数を表す値が、前記波形が所定の閾値以下の振動数で振動することを示す場合に、前記波形が打面の打撃に基づく波形であると判定し、前記波形の振動数を表す値が、前記波形が前記所定の閾値を超える振動数で振動することを示す場合に、前記波形が打面の打撃に基づく波形でないと判定する打撃検出装置。
【請求項2】
前記判定手段は、前記ピークレベルが、第1のレベルを超える場合には、前記波形の振動数を表す値とは無関係に、前記波形が打面の打撃に基づく波形であると判定することを特徴とする請求項に記載の打撃検出装置。
【請求項3】
前記判定手段は、前記ピークレベルが、第1のレベルより小さい第2のレベル以下である場合には、前記波形の振動数を表す値とは無関係に、前記波形が打面の打撃に基づく波形でないと判定する請求項1または2に記載の打撃検出装置。
【請求項4】
前記値取得手段は、前記所定期間内における前記波形がゼロクロスした回数を、前記波形の振動数を表す値として取得する請求項1からのいずれかに記載の打撃検出装置。
【請求項5】
前記値取得手段は、前記所定期間内における(前記波形のサンプリング毎の差分の絶対値を積算した値)/(前記積算区間におけるレベルのピーク値に基づく値)を、前記波形の振動数を表す値として取得する請求項1からのいずれかに記載の打撃検出装置。
【請求項6】
前記値取得手段は、ヒステリシスを持たせた前記波形のレベルの増減が反転する回数を、前記波形の振動数を表す値として取得する請求項1からのいずれかに記載の打撃検出装置。
【請求項7】
波形の入力が開始された後の所定期間において、前記波形の振動数を表す値を取得する値取得手段と、
前記波形の振動数を表す値が、前記波形が所定の閾値以下の振動数で振動することを示す場合に、前記波形が打面の打撃に基づく波形であると判定し、前記波形の振動数を表す値が、前記波形が前記所定の閾値を超える振動数で振動することを示す場合に、前記波形が打面の打撃に基づく波形でないと判定する判定手段とを備えている打撃検出装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、打撃検出装置に関し、打面の打撃に対する検出精度に優れる打撃検出装置に関する。
【背景技術】
【0002】
電子打楽器には、打面の打撃による振動を検出するセンサが設けられている。従来、ノイズなどによる誤発音を防ぐために、閾値を設け、その閾値とセンサからの出力値とを比較し、発音の制御を行っていた(例えば、特許文献1)。具体的に、センサからの出力値が前記閾値を超える場合には、センサが打面の打撃による振動を検出したと判断して発音させる一方で、センサからの出力値が前記閾値以下である場合には、センサが検出した振動がノイズなどに基づくものであると判断して発音させないように制御していた。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平10−20854号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、閾値とセンサからの出力値との比較に基づいて発音制御を行った場合、ノイズによる誤検出を防止できる一方で、演奏時における弱い打撃を検出できず、発音すべき音が発音されなくなることがあった。
【0005】
本発明は、上述した事情を鑑みてなされたものであり、打面の打撃に対する検出精度に優れる打撃検出装置を提供することを目的としている。
【課題を解決するための手段および発明の効果】
【0006】
この目的を達成するために、請求項1記載の打撃検出装置によれば、ピークレベル取得手段により取得されたピークレベル(波形の入力が開始された後の所定期間における当該波形のピークレベル)と、値取得手段により取得された値(当該所定期間における波形の振動数を表す値)とに基づいて、波形が打面の打撃に基づく波形であるか否かが、判定手段によって判定される。即ち、波形の振動数を表す値が、波形が所定の閾値以下の振動数で振動することを示す場合に、判定手段により、当該波形が打面の打撃に基づく波形であると判定される。一方で、波形の振動数を表す値が、波形が所定の閾値を超える振動数で振動することを示す場合に、判定手段により、当該波形が打面の打撃に基づく波形でないと判定される。よって、ピークレベルだけでなく、波形の振動数を表す値を考慮して、波形が打面の打撃に基づく波形であるか否かを判定するので、例えば、弱い打撃に基づくピークレベルの小さい波形が、ノイズとして誤検出されることを防止できる等、打面の打撃に対する検出精度に優れるという効果がある。
【0009】
請求項記載の打撃検出装置によれば、請求項が奏する効果に加え、次の効果を奏する。ピークレベルが、第1のレベルを超える場合には、判定手段により、波形の振動数を表す値とは無関係に、波形が打面の打撃に基づく波形であると判定されるので、打撃を容易に検出できるという効果がある。
【0010】
請求項記載の打撃検出装置によれば、請求項1又は2が奏する効果に加え、次の効果を奏する。ピークレベルが、第1のレベルより小さい第2のレベル以下である場合には、判定手段により、波形の振動数を表す値とは無関係に、波形が打面の打撃に基づく波形でないと判定されるので、ノイズなどを容易に検出できるという効果がある。
【0011】
請求項記載の打撃検出装置によれば、請求項1からのいずれかが奏する効果に加え、次の効果を奏する。所定期間内における前記波形がゼロクロスした回数が、値取得手段により、前記波形の振動数を表す値として取得される。よって、波形の振動数を表す値を容易に取得できるという効果がある。
【0012】
請求項記載の打撃検出装置によれば、請求項1からのいずれかが奏する効果に加え、次の効果を奏する。所定期間内における(波形のサンプリング毎の差分の絶対値を積算した値)/(積算区間におけるレベルのピーク値に基づく値)が、値取得手段により、波形の振動数を表す値として取得される。よって、波形の振動数を表す値を容易に取得できるという効果がある。
【0013】
請求項記載の打撃検出装置によれば、請求項1からのいずれかが奏する効果に加え、次の効果を奏する。ヒステリシスを持たせた波形のレベルの増減が反転する回数が、値取得手段により、波形の振動数を表す値として取得される。よって、波形の振動数を表す値を容易に取得できるという効果がある。
【0014】
請求項記載の打撃検出装置によれば、波形の入力が開始された後の所定期間において、波形の振動数を表す値が、値取得手段により取得される。値取得手段により取得された値が、波形が所定の閾値以下の振動数で振動することを示す場合には、当該波形が打面の打撃に基づく波形であると判定される。一方で、波形の振動数を表す値が、波形が所定の閾値を超える振動数で振動することを示す場合には、当該波形が打面の打撃に基づく波形でないと判定される。よって、波形の振動数を表す値に基づいて、当該波形が打面の打撃に基づく波形か否かを区別できる。これにより、例えば、弱い打撃に基づくピークレベルの小さい波形が、ノイズとして誤検出されることを防止できる等、打面の打撃に対する検出精度に優れるという効果がある。
【図面の簡単な説明】
【0015】
図1】音源装置の電気的構成を示すブロック図である。
図2】(a)は、打撃に基づく電圧波形(振動センサからの出力波形)の電圧−時間グラフであり、(b)は、ノイズに基づく電圧波形の電圧−時間グラフである。
図3】振動センサから出力される電圧波形のピークレベルと、その電圧波形のゼロクロス回数との関係を示すグラフである。
図4】CPUが実行するA/D割り込み処理を示すフローチャートである。
図5】変形例を説明するためのグラフである。
【発明を実施するための形態】
【0016】
以下、本発明の好ましい実施形態について、添付図面を参照して説明する。図1は、本発明の打撃検出装置100を搭載する音源装置1の電気的構成を示すブロック図である。音源装置1は、接続されるパッド51が打撃されたことに基づく楽音(音)を生成し、生成した楽音を、接続されるスピーカ41へと出力する装置である。
【0017】
詳細は後述するが、本実施形態の音源装置1は、入力部15を介して入力された、パッド51に設けられている振動センサ51aから出力された電圧波形のゼロクロス回数と、当該電圧波形のピークレベルの値とに基づいて、入力部15を介して入力された電圧波形(以下、単に「入力波形」と称す)が、打撃に基づくものであるか否かを判定するように構成されている。よって、弱い打撃に基づくピークレベルの小さい入力波形が、ノイズとして誤検出されることを防止され、弱い打撃に対する検出感度を向上させている。
【0018】
音源装置1は、CPU11と、ROM12と、RAM13と、操作パネル14と、入力部15と、音源16と、デジタルアナログコンバータ(DAC)17とを有している。なお、本発明の打撃検出装置100は、CPU11と、ROM12と、RAM13とから構成される。各部11〜17は、バスライン18を介して互いに接続される。入力部15には、パッド51の振動センサ51aが接続される。
【0019】
CPU11は、ROM12に記憶される固定値やプログラム、RAM13に記憶されているデータなどに従って、音源装置1の各部を制御する中央制御装置である。CPU11は、クロック信号を計数することにより、時刻を計時するタイマ(図示せず)を内蔵している。
【0020】
ROM12は、書き替え不能な不揮発性メモリであって、CPU11や音源16に実行させる制御プログラム12aや、この制御プログラム12aが実行される際にCPU11により参照される固定値データ(図示せず)などが記憶される。なお、図4のフローチャートに示す各処理は、制御プログラム12aに基づいて実行される。
【0021】
RAM13は、書き替え可能な揮発性メモリであり、CPU11が制御プログラム12aを実行するにあたり、各種のデータを一時的に記憶するためのテンポラリエリアを有する。RAM13のテンポラリエリアには、ピークホールド値メモリ13aと、波形バッファ13bと、ピークホールド用カウンタ13cと、ピークホールド中フラグ13dと、発音中フラグ13eとが設けられている。RAM13に設けられている上記各部13a〜13eは、いずれも、音源装置1に電源が投入されたときに初期化される。
【0022】
ピークホールド値メモリ13aは、入力波形(入力部15を介して振動センサ51aから入力された電圧波形)のピークレベルを保持するメモリである。振動センサ51aから入力波形の入力が開始されると、所定のピークホールド期間内において、CPU11がサンプリングした入力波形のレベルが最大値を更新する毎に、その値がピークホールド値メモリ13aに記憶される。ピークホールド期間の終了時におけるピークホールド値メモリ13aの値が、入力波形のピークレベル(最大値)とされる。
【0023】
波形バッファ13bは、CPU11がピークホールド期間中にサンプリングした入力波形のレベルを時系列に記憶するバッファである。波形バッファ13bに蓄積された入力波形のレベルは、ピークホールド期間が終了すると、入力波形のゼロクロス回数を取得するために使用される。
【0024】
ピークホールド用カウンタ13cは、振動センサ51aからの入力波形のピーク値を得るためのピークホールド期間を計時するカウンタである。ピークホールド用カウンタ13cは、入力波形の入力が開始された後、入力波形のレベルが所定の閾値L2(図3参照)を超えた場合に、計時が開始される。なお、閾値L2は、入力波形のレベルに対して設けられる閾値であり、入力波形がノイズに基づくものであるか否かを判定するための閾値である。計時開始後、予め規定されているピークホールド期間(本実施形態では、2msec)が経過すると、計時が停止される。
【0025】
ピークホールド中フラグ13dは、ピークホールド用カウンタ13cによるピークホールド期間の計時中であるか否かを示すフラグである。具体的に、ピークホールド中フラグ13dがオンに設定されている場合には、ピークホールド期間の計時中であることを示す。ピークホールド中フラグ13dは、ピークホールド用カウンタ13cによる計時が開始されるとオンに設定され、当該計時が終了するとオフに設定される。
【0026】
発音中フラグ13eは、音源装置1がパッド51の打撃に基づく楽音の発音中であるか否かを示すフラグである。具体的に、発音中フラグ13eがオンに設定されている場合に、発音中であることを示す。発音中フラグ13eは、振動センサ51aから入力された入力波形がパッド51の打撃に基づくものであると判定され、音源16から楽音が発音されたことに伴いオンに設定される。オンに設定された発音中フラグ13eは、所定時間後、又は、入力波形のレベルが所定レベル以下に下がった場合にオフに設定される。
【0027】
操作パネル14は、音量などの各種パラメータを設定する操作子と、その操作子により設定されたパラメータの値などを表示する表示器とが設けられたパネルであり、ユーザインタフェイスとして使用される。
【0028】
入力部15は、パッド51に設けられた振動センサ51aを接続するインターフェイスである。振動センサ51aから出力されたアナログ信号波形は、入力部15を介して音源装置1に入力される。入力部15には、アナログデジタルコンバータ(図示せず)が内蔵されている。振動センサ51aから入力されるアナログ信号波形は、アナログデジタルコンバータによって所定時間毎にデジタル値に変換される。CPU11は、入力部15において変換されたデジタル値に基づいて、パッド51が打撃されか否かの判定を行う。詳細は後述するが、CPU11は、入力波形のピークレベルが閾値L1(図3参照)を超えるか、入力波形のゼロクロス回数が所定回数を超えた場合に、パッド51が打撃されたと判断し、パッド51に対応する音色の楽音をピークレベルに応じた音量で出力するよう指示する発生指示を音源16へ出力する。
【0029】
音源16は、CPU11から楽音の発生指示を受けた場合に、その発生指示に従う音色及び音量の楽音を発生する。音源16には、波形ROM(図示せず)が内蔵される。この波形ROMには、パッド51に対応する音色のデジタル楽音が記憶されている。また、音源16には、フィルタやエフェクトなどの処理を行う、図示されないDSP(Digital Signal Processor)が内蔵される。音源16は、発生指示がCPU11から入力された場合に、その発生指示に従う音色のデジタル楽音を波形ROMから読み出し、DSPにおいてフィルタやエフェクトなどの所定の処理を行い、処理後のデジタル楽音をDAC17へ出力する。DAC17は、入力されたデジタル楽音をアナログ楽音に変換し、音源装置1の外部に設けられるスピーカ41へ出力する。これにより、パッド51の打撃に基づく楽音がスピーカ41から放音される。
【0030】
次に、図2を参照して、振動センサ51aから出力される電圧波形(振動センサ51aからの出力波形)の特性について説明する。図2(a)は、打撃に基づく電圧波形の波形グラフであり、図2(b)は、ノイズに基づく電圧波形の波形グラフである。なお、本実施形態では、図2(b)の波形グラフは、スティックカウントノイズ(打撃用のスティックを打ち鳴らした場合に発生するノイズ)に基づくものである。図2(a)及び(b)に示す波形グラフは、いずれも、縦軸が電圧を示し、横軸が時間を示す。ただし、横軸は、両グラフともに同じスケールであるが、縦軸は、図2(a)のグラフの方が、図2(b)のグラフより10倍程度大きいスケールとなっている。
【0031】
図2(a)に示すように、打撃に基づく電圧波形は、波形の出力開始時刻t0から、ピークホールド期間に相当する2msec後の時刻t1までの期間内に、電圧がゼロの点を通過して正又は負の値となること(即ち、ゼロクロス)が1回も生じていない。その一方で、図2(b)に示すように、ノイズに基づく電圧波形は、波形の出力開始時刻t0から、時刻t1までの期間(2msec)内に、多数のゼロクロスが生じている。
【0032】
図2(a)及び(b)の波形グラフによれば、打撃に基づく電圧波形と、ノイズに基づく電圧波形とでは、出力開始後の所定期間(ここでは、2msec)内におけるゼロクロスの回数が大きく異なることが明白である。
【0033】
図3は、振動センサ51aから出力される電圧波形(即ち、入力部15から入力される入力波形)のピークレベルと、その電圧波形のゼロクロス回数との関係を示すグラフである。なお、図3のピークレベル及びゼロクロス回数は、いずれも、電圧波形の出力開始(入力波形の入力開始)から所定期間内におけるピークレベル及びゼロクロス回数である。
【0034】
図3のグラフにおいて、縦軸は、電圧波形のピークレベルを示し、横軸は、電圧波形のゼロクロス回数を示す。このグラフにおける黒塗りの菱形のシンボル(◆)は、打撃に基づく電圧波形を示す。一方、黒塗りの四角形のシンボル(■)は、ノイズ(スティックカウントノイズ)に基づく電圧波形を示す。
【0035】
図3のグラフによれば、打撃に基づく電圧波形(◆)は、ピークレベルが比較的大きく、かつ、ゼロクロス回数が少ない傾向にあることを示す。一方で、ノイズに基づく電圧波形(■)は、ピークレベルが比較的小さく、かつ、ゼロクロス回数が多い傾向にあることを示す。
【0036】
従来、入力波形のピークレベルが閾値を超えた場合には、打撃であると判定して発音させ、当該ピークレベルが閾値以下である場合には、ノイズであると判定して発音させないように、発音の制御を行っていた。しかし、図3のグラフによれば、打撃であるか否かの判定を行うレベルの閾値を、ピークレベルが高いノイズよりも大きく、ノイズを発生させない閾値L1に設定した場合、ピークレベルが閾値L1以下である一部の打撃を検出することができない。一方、打撃であるか否かの判定を行うレベルの閾値を、ピークレベルが小さい打撃よりも小さく、弱い打撃を検出可能にする閾値L2に設定した場合には、ノイズが打撃と誤判定されることになる。
【0037】
一方、ゼロクロス回数は、打撃に基づく電圧波形(◆)と、ノイズに基づく電圧波形(■)とで明白な相違がある。そこで、本実施形態の音源装置1(打撃検出装置100)では、閾値L1と閾値L2との間のレベル区間について、ゼロクロス回数の閾値Z1を設ける。これにより、閾値L1と閾値L2との間のレベル区間内に含まれ得る打撃に基づく電圧波形(入力波形)と、ノイズに基づく電圧波形(入力波形)とを分けることができる。具体的に、閾値L1と閾値L2との間のレベル区間内に含まれ得るピークレベルの入力波形のうち、ゼロクロス回数が閾値Z1以下のものは打撃であり、閾値Z1を超えるものはノイズであると分離できる。
【0038】
つまり、本実施形態の音源装置1(打撃検出装置100)は、ピークレベルが閾値L1を超える入力波形(即ち、領域A1に含まれる入力波形)と、ピークレベルが閾値L1と閾値L2との間にあり、かつ、ゼロクロス回数が閾値Z1以下である入力波形(即ち、領域A2に含まれる入力波形)とを、打撃に基づく入力波形であると判定する。一方、音源装置1(打撃検出装置100)は、ピークレベルが閾値L2以下である入力波形(即ち、領域A3に含まれる入力波形)と、ピークレベルが閾値L1と閾値L2との間にあり、かつ、ゼロクロス回数が閾値Z1を超える入力波形(即ち、領域A4に含まれる入力波形)とを、ノイズに基づく入力波形であると判定する。なお、図3では、ノイズに基づく入力波形であると判定される領域(領域A3,A4)を着色領域として表わし、打撃に基づく入力波形であると判定される領域(領域A1,A2)との区別を分かり易くしている。
【0039】
このように、本実施形態の音源装置1(打撃検出装置100)によれば、打撃であるか否かの判定を、入力波形(振動センサ51aから出力された電圧波形)のピークレベルと、入力波形のゼロクロス回数とに基づいて行うので、ピークレベルが小さい弱い打撃とノイズとを明確に区別できる。よって、弱い打撃を確実に検出できるとともに、ノイズが打撃と誤判定されることも防止できる。
【0040】
次に、図4を参照して、上記構成を有する音源装置1(打撃検出装置100)のCPU11が実行する処理について説明する。図4は、CPU11が実行するA/D割り込み処理を示すフローチャートである。A/D割り込み処理は、CPU11が、入力部15に入力されてデジタル値に変換された入力波形(振動センサ51aから出力された電圧波形)のレベルを定期的にサンプリングする処理である。本実施形態では、A/D割り込み処理は、CPU11に内蔵されるタイマ(図示せず)により0.1msec毎に実行される。
【0041】
まず、CPU11は、振動センサ51aから出力された電圧波形のレベルを入力部15から取得する(S401)。次に、発音中フラグ13eがオンであれば(S402:Yes)、発音中であるので、かかる場合には、CPU11は、本処理を終了する。
【0042】
一方、発音中フラグ13eがオフであり、かつ、ピークホールド中フラグ13dがオフであるとCPU10が判定した場合には(S402:No,S403:No)、発音中でなく、かつ、ピークホールド期間の計時中でないので、かかる場合には、CPU11は、取得したレベルの絶対値が、閾値L2(入力波形がノイズに基づくものであるか否かを判定するレベルの閾値)を超えるか否かを判定する(S415)。
【0043】
S415において、取得したレベルの絶対値が閾値L2以下であるとCPU10が判定した場合(S415:No)、本処理を終了する。一方、S415において、取得したレベルの絶対値が閾値L2を超えるとCPU10が判定した場合(S415:Yes)、CPU11は、取得したレベルの絶対値を、ピークホールド値メモリ13aにピークレベルとして上書きして記憶する(S416)。
【0044】
次に、CPU11は、ピークホールド用カウンタ13cによる計時をスタートして、ピークホールド期間の計時を開始し(S417)、ピークホールド中フラグ13dをオンに設定する(S418)。なお、計時をスタートしたピークホールド用カウンタ13cは、CPU11が定期的に実行する図示されないカウント処理の中で更新される。次に、CPU10は、波形バッファ13bをクリアし(S419)、取得したレベルを、波形バッファ13bに記憶し(S420)、本処理を終了する。
【0045】
一方、発音中フラグ13eがオフであり、かつ、ピークホールド中フラグ13dがオンであるとCPU10が判定した場合には(S402:No,S403:Yes)、ピークホールド期間の計時中であるので、かかる場合には、CPU11は、S401において取得したレベルが、ピークホールド値メモリ13aに記憶されているピークレベルを超えるか否かを判定する(S404)。
【0046】
S404において、取得したレベルがピークレベルを超える場合(S404:Yes)、CPU11は、ピークホールド値メモリ13aに記憶されるピークレベルを、取得したレベルに更新し(S405)、処理をS406へ移行する。一方、S404において、取得したレベルの絶対値がピークレベル以下である場合には(S404:No)、CPU11は、処理をS406へ移行する。S406において、CPU11は、取得したレベルを、波形バッファ13bに追加して記憶する(S406)。
【0047】
次に、CPU11は、ピークホールド用カウンタ13cの値がピークホールド期間(本実施形態では、2msec)を超えたか否かを判定する(S407)。S407において、ピークホールド用カウンタ13cの値がピークホールド期間を未だ超えていないとCPU11が判定した場合(S407:No)、CPU11は、本処理を終了する。
【0048】
一方、S407において、ピークホールド用カウンタ13cの値がピークホールド期間を超えたとCPU11が判定した場合(S407:Yes)、CPU11は、ピークホールド用カウンタ13cを停止し(S408)、ピークホールド中フラグ13dをオフに設定する(S409)。なお、CPU11は、S408においてピークホールド用カウンタ13cを停止した後、ピークホールド用カウンタ13cをゼロクリアする。
【0049】
次に、CPU11は、ピークホールド値メモリ13aに記憶されるピークレベルが、閾値L1(入力波形が打撃に基づくものであるか否かを判定するレベルの閾値)を超えるか否かを判定する(S410)。S410において、ピークレベルが閾値L1を超えるとCPU11が判定した場合には(S410:Yes)、CPU11は、入力波形が打撃に基づくものであると判断して、発音処理を実行する(S413)。具体的に、S413において、CPU11は、パッド51の楽音をピークレベルに応じた音量で発生させるための発生指示を音源16へ出力する。CPU11は、発音処理(S413)の実行後、発音フラグ13eをオンに設定し(SS414)、本処理を終了する。
【0050】
一方、S410において、ピークレベルが閾値L1以下であるとCPU11が判定した場合には(S410:No)、CPU11は、波形バッファ13bに記憶される波形のゼロクロス回数をカウントする(S411)。次に、CPU11は、カウントしたゼロクロス回数が閾値Z1を超えるか否かを判定する(S412)。
【0051】
S412において、カウントしたゼロクロス回数が閾値Z1を越えるとCPU11が判定した場合には(S412:Yes)、CPU11は、入力波形がノイズに基づくものであると判断して、本処理を終了する。一方、S412において、カウントしたゼロクロス回数が閾値Z1以下であるとCPU11が判定した場合には(S412:No)、CPU11は、入力波形が打撃に基づくものであると判断して、発音処理を実行する(S413)。
【0052】
以上説明した通り、本実施形態の音源装置1(打撃検出装置100)によれば、入力波形のピークレベルだけでなく、入力波形の振動数を表す値を考慮して、入力波形が打面の打撃に基づく波形であるか否かを判定するので、弱い打撃に基づくピークレベルの小さい波形が、ノイズとして誤検出されることを防止することができる。よって、打面(パッド51)の打撃に対する検出精度に優れる。
【0053】
入力波形の振動数を表す値としては、入力波形の振動数を表わすゼロクロス回数を用いるので、所定期間(本実施形態では、ピークホールド期間である2msec)分の入力波形から容易にその値を取得することができる。また、ピークホールド期間内の入力波形から取得されたゼロクロス回数に基づいて、打撃に基づく波形であるか否かの判断を行うので、ピークホールド以外の余分な遅延を伴うことなく、打面の打撃に対する検出精度を向上させることができる。また、フィルタを通過させる必要もないので、その点においても、余分な遅延を伴うことなく、打面の打撃に対する検出精度を向上させることができる。
【0054】
パッド51が打撃されたことにより振動センサ51aから出力される電圧波形に高周波が乗り、波形のゼロクロス回数が増えることもあり得る。しかし、本実施形態の音源装置1(打撃検出装置100)によれば、ピークレベルが閾値L1を超える入力波形は、ゼロクロス回数とは無関係に、パッド51の打撃に基づく波形であると判断されるので、打面(パッド51)の打撃を容易かつ確実に検出できる。
【0055】
また、ピークレベルが閾値L2以下である入力波形は、ゼロクロス回数とは無関係に、パッド51の打撃に基づく波形でないと判断されるので、ノイズなどを容易に検出できる。
【0056】
以上、実施形態に基づき本発明を説明したが、本発明は上記形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の変形改良が可能であることは容易に推察できるものである。
【0057】
例えば、上記実施形態では、ノイズとして、スティックカウントノイズを例示した。つまり、音源装置1(打撃検出装置100)が、スティックカウントノイズを除去できることを例示した。上記実施形態において例示したスティックカウントノイズに限らず、スティックカウントノイズ以外の各種ノイズや、外部の音を除去するものとして、本発明を適用してもよい。よって、本発明によれば、打面の打撃に対する検出精度に優れる。
【0058】
例えば、ユーザが、パッド51とアコースティックドラムとを混ぜて使用する場合に、音源装置1(打撃検出装置100)は、パッド51の振動センサ51aが拾ったアコースティックドラムの打撃音を、入力波形のピークレベルと、波形の振動数を表す値(例えば、ゼロクロス回数)とに基づいて除去するものであってもよい。あるいは、音源装置1(打撃検出装置100)は、モニタースピーカから放音される他の楽器の音などを振動センサ51aが拾った場合にも、入力波形のピークレベルと、波形の振動数を表す値(例えば、ゼロクロス回数)とに基づいて、その音を除去するものであってもよい。
【0059】
また、上記実施形態では、図3に示したように、ピークレベルの閾値L1,L2と、ゼロクロス回数の閾値Z1とに基づいて、入力波形が、打撃に基づくものであるか、ノイズに基づくものであるかを判定した。これに換えて、ピークレベルの閾値L2を使用せず、ピークレベルの閾値L1と、ゼロクロス回数の閾値Z1とに基づいて、入力波形が打撃に基づくものであるか否かを判定する構成としてもよい。
【0060】
かかる場合には、音源装置1(打撃検出装置100)は、ピークレベルが閾値L1を超える入力波形と、ピークレベルが閾値L1以下であり、かつ、ゼロクロス回数が閾値Z1以下である入力波形とを、打撃に基づく入力波形であると判定する。一方、音源装置1(打撃検出装置100)は、ピークレベルが閾値L1以下であり、かつ、ゼロクロス回数が閾値Z1を超える入力波形を、ノイズに基づく入力波形であると判定する。
【0061】
あるいは、ピークレベルの閾値L1,L2を使用せず、ゼロクロス回数の閾値Z1に基づいて、入力波形が打撃に基づくものであるか否かを判定する構成としてもよい。かかる場合には、音源装置1(打撃検出装置100)は、ゼロクロス回数が閾値Z1以下である入力波形を、打撃に基づく入力波形であると判定する。一方、音源装置1(打撃検出装置100)は、ゼロクロス回数が閾値Z1を超える入力波形を、ノイズに基づく入力波形であると判定する。
【0062】
図5(a)及び(b)は、上記変形例を説明するグラフである。図5(a)及び(b)に示すグラフは、閾値により区分される領域(領域B1〜B3,領域C1,C2)が異なる以外、図3に示したグラフと同一のグラフである。
【0063】
ピークレベルの閾値L1と、ゼロクロス回数の閾値Z1とに基づいて、入力波形が打撃に基づくものであるか否かを判定する場合には、図5(a)のグラフに示すように、ピークレベルが閾値L1を超える領域B1と、ピークレベルが閾値L1以下であり、かつ、ゼロクロス回数が閾値Z1以下である領域B2とに含まれる入力波形が、打撃に基づく入力波形であると判定される。一方で、ピークレベルが閾値L1以下であり、かつ、ゼロクロス回数が閾値Z1を超える着色領域B3に含まれる入力波形が、ノイズに基づく入力波形であると判定される。
【0064】
また、ゼロクロス回数の閾値Z1に基づいて、入力波形が打撃に基づくものであるか否かを判定する場合には、図5(b)のグラフに示すように、ゼロクロス回数が閾値Z1以下である領域C1に含まれる入力波形が、打撃に基づく入力波形であると判定される。一方で、ゼロクロス回数が閾値Z1を超える着色領域C2に含まれる入力波形が、ノイズに基づく入力波形であると判定される。
【0065】
ただし、パッド51が打撃されたことにより振動センサ51aから出力される電圧波形に、高周波が乗り、波形のゼロクロス回数が増えることもあり得るため、図3図5(a)に示すように、閾値L1(ピークレベルが高いノイズよりも大きく、ノイズを発生させない閾値)を少なくとも設けることが好ましい。
【0066】
また、上記実施形態では、ピークレベルが閾値L1を超える入力波形と、ピークレベルが閾値L1と閾値L2との間にあり、かつ、ゼロクロス回数が閾値Z1以下である入力波形とを、打撃に基づく入力波形であると判定し、その一方で、ピークレベルが閾値L2以下である入力波形と、ピークレベルが閾値L1と閾値L2との間にあり、かつ、ゼロクロス回数が閾値Z1を超える入力波形とを、ノイズに基づく入力波形であると判定した。つまり、入力波形のピークレベルとゼロクロス回数とが所定の関係を満たすか否かに応じて、その入力波形が打撃に基づくものであるか否かを判定した。
【0067】
上記「所定の関係」としては、上記実施形態において例示した関係に限定されるものではない。例えば、yをピークレベルとし、xをゼロクロス回数とした場合における所定の関数で表わされる線より上方に含まれる入力波形を、打撃に基づくものと判定し、当該線より下方に含まれる入力波形を、ノイズに基づくものと判定するようにしてもよい。
【0068】
上記「所定の関数」としては、以下の関数などを例示できる。
直線:y=a(x−b)
二次曲線:x=ay+b
S字曲線:y=a(arctan(x−b))+c
円(楕円)弧と直線の組み合わせ:x<aの場合、(x−a)+y=a,x≧aの場合、x=a
ただし、いずれの式についても、y≧0,a≧0,b≧0,c≧0
【0069】
また、上記実施形態では、所定期間(例えば、2msec)内における入力波形のピークレベルとゼロクロス回数とが所定の関係を満たすか否かに応じて、その入力波形が打撃に基づくものであるか否かを判定したが、これらの値のうち、波形の振動数を表す値であるゼロクロス回数については、波形の振動数を表す他の値を採用できる。
【0070】
例えば、所定期間内における入力波形のサンプリング毎の差分の絶対値を積算した値を、同期間内における積算区間の絶対値のピーク値で除した値を、ゼロクロス回数に換わる波形の振動数を表す値として採用してもよい。かかる値も、ゼロクロス回数と同様に、入力波形の振動数を表わす値である。なお、「絶対値のピーク値」の代わりに、「正のピーク値」や、「負のピーク値」や、「正のピーク値と負のピーク値との差」としてもよい。かかる値は、ゼロクロス回数に比べて処理が煩雑になるが、波形に直流ノイズが乗ってゼロクロスしない状況が生じるか否かに依存しない点が利点である。
【0071】
別の例としては、所定期間内におけるヒステリシスを持たせた入力波形のレベルの増減が反転する回数をカウントし、その反転回数を、ゼロクロス回数に換わる波形の振動数を表す値として採用してもよい。かかる値も、ゼロクロス回数と同様に、入力波形の振動数を表わす値である。具体的に、入力部15におけるアナログデジタルコンバータで通常乗る程度のノイズより大きい閾値を設け、前回値からの差分が当該閾値を超えた場合に値を更新しつつ、今回値が前回値から増加したのか減少したのかを検出する。このとき、前回値からの増減が反転していればカウントする。かかる値もまた、ゼロクロス回数に比べて処理が煩雑になるが、波形に直流ノイズが乗ってゼロクロスしない状況が生じるか否かに依存しない点が利点である。
【0072】
また、上記実施形態では、ゼロクロス回数のカウントを、ピークホールド期間の終了後に実行する構成としたが、ゼロクロス回数は、ピークホールド期間中に随時カウントする構成としてもよい。
【0073】
また、上記実施形態では、ゼロクロス回数に基づいて、入力波形がノイズに基づくものであると判断された場合には、その入力波形を発音させない(即ち、当該ノイズを除去する)ようにするだけであった。これに換えて、例えば、図3におけるゼロクロス回数とピークレベルとの領域を限定してスティックカウントノイズを他のノイズと区別して検出し、積極的にスティックカウント(ノイズ)を検出し、タップテンポなどに利用する構成としてもよい。
【0074】
また、上記実施形態で挙げた数値は一例であり、他の数値を採用することは当然可能である。例えば、上記実施形態では、ピークホールド期間として、2msecを例示したが、この期間は、打面の種類(例えば、大きさや材質など)と、打撃センサの特性との組み合わせに応じた値が適宜採用される。
【0075】
また、上記実施形態では、閾値として、ピークレベルの閾値を2つ(L1,L2)と、ゼロクロス回数の閾値を1つ(Z1)とを例示したが、ピークレベル及びゼロクロス回数ともに、閾値の数は適宜設定可能である。そして、打撃と判断される領域、及び、ノイズと判断される領域は、縦軸(ピークレベル)の閾値と横軸(ゼロクロス回数)の閾値とにより区切られる各領域に対して適宜設定可能である。
【0076】
また、上記実施形態では、打撃検出装置100が、1つのパッド51に対する打撃を検出する構成としたが、打撃検出装置100により、複数のパッドのそれぞれに対する打撃を検出する構成としてもよい。かかる場合には、図4のA/D割り込み処理を、対象とするパッド毎に実行するようにすればよい。また、上記実施形態では、打撃検出装置100が、音源装置1に内蔵される構成としたが、打撃検出装置100が、音源装置と別体であってもよい。また、打撃検出装置100が、パッド(パッド51)を有する電子打楽器に内蔵されていてもよい。
【0077】
上記実施形態において、ピークレベル取得手段としては、S404,S405,S416が例示される。また、値取得手段としては、S406,S411が例示される。また、請求項1における判定手段としては、S410,S412が例示される。
【符号の説明】
【0078】
1 音源装置
11 CPU(打撃検出装置の一部)
12 ROM(打撃検出装置の一部)
13 RAM(打撃検出装置の一部)
図1
図2
図4
図3
図5