説明

ピッチ検出装置

【課題】被測定信号のピッチの誤差精度と、反応時間との両方を、実用上問題のない値に維持した上で、クロック信号の周波数を下げることができるピッチ検出装置を提供すること。
【解決手段】楽音のピッチに応じて、累積加算の回数を変化させるので、累積加算時間sumが常時、定数T_SUM_MIN以上となる。よって、楽音のピッチの誤差精度dは、要求誤差精度を満たす。また、定数T_SUM_MINが、要求反応時間を超えないように、数式(6)、数式(7)を用いて、クロック信号の周波数を決定している。よって、クロック信号の周波数を下げても、反応時間tは、要求反応時間以内となる。従って、本実施形態の楽器用チューナ1によれば、楽音のピッチの誤差精度dと、反応時間tとの両方を、実用上問題のない値に維持した上で、クロック信号の周波数を下げることができるので、消費電流の抑制を行うことができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はピッチ検出装置に関し、特に、被測定信号のピッチの誤差精度と、反応時間との両方を、実用上問題のない値に維持した上で、クロック信号の周波数を下げることができるピッチ検出装置に関するものである。
【背景技術】
【0002】
従来のピッチ検出装置(例えば、入力された楽音のピッチを検出し、基準ピッチとの偏差を表示するチューナ装置)では、数百KHz〜数MHzのクロック信号を使用して、入力された楽音のピッチ(被測定信号のピッチ)を検出している。ここで、図7を参照して、従来のピッチ検出装置における被測定信号のピッチ検出方法について説明する。図7は、従来におけるピッチの検出方法を示すフローチャートである。従来におけるピッチの検出では、まず、ピッチ検出装置に内蔵された中央演算装置(以下、「CPU」と称す)は、クロック信号の1クロックを最小単位(時間長の計測の際の基準となる最小の単位)として、被測定信号の1周期の時間長を離散的に、予め定められた回数(固定値)、繰り返し計測する(S71)。次に、その計測結果である被測定信号の1周期の時間長を、予め定められた回数分、累積加算した後、被測定信号の1周期の時間長の平均時間(平均周期)を算出し(S72)、そこからピッチを求める(S73)。従来のピッチ検出装置では、この検出方法により、被測定信号のピッチを検出していた。
【発明の概要】
【発明が解決しようとする課題】
【0003】
従来のピッチ検出装置では、被測定信号のピッチの誤差精度(ピッチの算出時に発生する誤差)と、反応時間(被測定信号が入力されてから、被測定信号のピッチを新たに検出するまでの時間)との両方を、実用上問題のない値とするために、一般的に、数百kHz以上、例えば500kHz以上のクロック信号が必要であった。ここで、500kHz以上のクロック信号を用いる場合には、その周波数の高さに起因して、ピッチ検出装置における消費電流が数百μA程度となる。ピッチ検出装置においては、クロック信号の周波数を下げることは、装置の消費電流を下げる有効な手段であることは周知であり、この消費電流を、例えば数十μA程度にまで抑えようとすると、クロック信号の周波数を500kHzから1桁程度下げる必要があることが分かっている。しかし、従来のピッチ検出装置では、クロック信号の周波数を下げると、被測定信号のピッチの誤差精度と、反応時間との両方を、実用上問題のない値に維持することが困難となる。以下、この理由について、500kHzのクロック信号を用いた場合と、32.768kHzのクロック信号(時計用の水晶振動子)を用いた場合とを比較することで、具体的に説明する。
【0004】
なお、比較を行う前に、まず、クロック信号の1クロックを最小単位として、被測定信号の1周期の時間長(1周期に費やされる時間)を離散的に計測する方法について説明する。従来のピッチ検出装置のように、クロック信号の1クロックを最小単位として被測定信号の1周期の時間長を離散的に計測する方法としては、具体的には、例えばゼロクロスの間隔を、ゼロクロスによる割り込みの間に発生するクロック数(クロック信号の1周期が繰返す回数)により離散的に計測し、次に、自己相関関数に基づいて被測定信号の1周期を検出する公知の方法により、被測定信号の1周期を検出し、その後、検出した1周期の時間長を、1クロックの時間を乗じて求める。ここでは、計測が離散的に行なわれるため、次の計測誤差(被測定信号の1周期の時間長に対する計測誤差)が現れる。ここで、計測されたクロック数がkであったときに生ずる計測誤差について説明する。まず、被測定信号の1周期が、クロック信号のk−1クロック分からクロック信号のkクロック分との間であった場合には、被測定信号の1周期の時間長に対する計測誤差は、kクロック分では、被測定信号の1周期の真の時間長より少し長いことに起因する誤差となる。次に、被測定信号の1周期が、クロック信号のkクロック分からクロック信号のk+1クロック分との間であった場合には、被測定信号の1周期の時間長に対する計測誤差は、kクロック分では、その被測定信号の1周期の真の時間長よりも少し短いことに起因する誤差となる。以上より、その被測定信号の1周期の真の時間長は、クロック信号のk−1クロック分の総時間長とk+1クロック分の総時間長との間における時間長であるが、ピッチ検出装置では、上述したいずれの場合においても、被測定信号の1周期の時間長を、クロック信号のkクロック分の時間長として計測する。このように、被測定信号の1周期の時間長の計測が、クロック信号の1クロックを最小単位として離散的に行なわれるが故に、その計測で発生する誤差も離散的に発生する。
【0005】
次に、被測定信号のピッチの誤差精度と、反応時間とについて説明する。両値は、以下の式から算出することができる。ピッチの誤差精度d(cent)、反応時間t(s)は、被測定信号の周波数をf(Hz)、被測定信号の周期の検出回数をN(回)、クロック信号の周波数をFc(Hz)、被測定信号の1周期をN回計測する総時間長内にカウントされるクロック信号の個数をp(クロック)とした場合、それぞれ、次の数式(1)、(2)および(3)から得ることができる。
【0006】
d=1200×log2(p/(p−1)) ・・・数式(1)
t=N/f ・・・数式(2)
p=Fc×N/f ・・・数式(3)
なお、ピッチの誤差精度dは、セント単位(1セントは、1オクターブの1200分の1の音程)での誤差を示すものである。
【0007】
また、Fc/fは、被測定信号の1周期中にカウントされるクロック数である。これにより、数式(3)で示されるクロック数pは、被測定信号の周期をN回計測した時間内にカウントされるクロック数として、次の数式(3´)のようにも変形することができる。
p=(Fc/f)×N ・・・数式(3´)
この数式(3´)で表わされるpは、被測定信号(例えば、マイクロフォンで集音された楽音)の周期をN回計測した総時間長中にカウントされる総クロック数、すなわち、クロック信号の1クロックを最小単位として離散的に計測した被測定信号の1周期の時間長におけるクロック数を、被測定信号のN周期分累積加算した、総クロック数と理解することができる。
【0008】
なお、数式(1)では、クロック数pと、そのクロック数pの値よりも一つ小さいクロック数(p−1)との比の対数を算出している。つまり、ピッチの誤差精度dは、クロック数pと、そのクロック数pよりも一つ少ないクロック数(p−1)との間に発生する誤差を示している。
【0009】
ここで、クロック数pと、そのクロック数pよりも一つ多いクロック数(p+1)との間に発生するピッチの誤差精度は、数式(1)における「(p/(p−1))」の部分を、「((p+1)/p)」へ変更すれば求めることができる。しかし、このピッチの誤差精度は、数式(1)を用いて算出されるピッチの誤差精度dよりも、小さい誤差となる。通常、ピッチ検出装置の設計においては、誤差精度の大きい方に着目し、その大きい方の誤差を設計目標値として考慮することが求められる。これを考慮して、数式(1)では、「((p+1)/p)」ではなく、「(p/(p−1))」を使用しているのである。なお、以後、前述した理由に基づき、ピッチの誤差精度dは、数式(1)を用いて求めることとする。
【0010】
500kHzのクロック信号を用いた場合と、32.768kHzのクロック信号を用いた場合との比較へ移る。
【0011】
まず最初に、ピッチの誤差精度dと反応時間tとの両方の値が、実用上問題のない場合について説明する。ここで、このピッチ検出装置の設計条件について説明する。設計条件は、
・クロック信号の周波数Fc :500kHz
・被測定信号の周波数fの検出範囲:30.9Hz〜659Hz
・被測定信号のピッチの誤差精度d:±1セント
・反応時間t :150ms以内
とする。ピッチの検出方法は、被測定信号の周期の検出回数Nを4回とし、クロック数をカウントすることにより得られる被測定信号の1周期の時間長(クロック信号を用いて離散的に計測を行なった結果)を4回分用いて、被測定信号の1周期の時間長の平均時間を算出し、その逆数を求める方法とする。
【0012】
ここで、被測定信号の周波数fの検出範囲における最低周波数の30.9Hzは、5弦ベースの第5弦開放音に対応し、最高周波数の659Hzは、バイオリンの第1弦開放音に対応する。これより、ピッチ検出装置のカバーする音域を30.9Hz〜659Hzと設定することができ、このピッチ検出装置を楽器用チューナに応用する場合、管楽器や弦楽器を含む現存する楽器のほとんどのチューニングをカバーできることがわかる。なお、以後、被測定信号のピッチの誤差精度dに対する設計条件を、「要求誤差精度」と称し、反応時間tに対する設計条件を、「要求反応時間」と称す。
【0013】
上述の設計条件およびピッチの検出方法において、数式(1)および(3)を用いて算出されるピッチの誤差精度dは、0.027セント(30.9Hz)〜0.571セント(659Hz)となり、要求誤差精度を満たす。また、数式(2)を用いて算出される反応時間tは、6.07ms(659Hz)〜129ms(30.9Hz)となり、これも要求反応時間を満たす。よって、500kHzのクロック信号を用いた場合には、ピッチの誤差精度dと反応時間tとの両方の値を、実用上問題のない値とすることができる。なお、クロック信号を500kHz以上とすると、ピッチの誤差精度dは、上述の値から更に小さい値になり、反応時間tも、上述の時間から更に短い時間となる。従って、500kHz以上のクロック信号を用いれば、ピッチの誤差精度dと反応時間tとの両値を、実用上問題のない値にすることができ、ピッチの誤差精度が良く反応時間も短いより高性能なピッチ検出装置を得る結果となる。
【0014】
次に、ピッチの誤差精度dまたは反応時間tの一方の値が、実用上問題となる場合について説明する。ここで、このピッチ検出装置の設計条件について説明する。設計条件は、クロック信号の周波数Fcが32.768kHzである他は、全て、500kHzのクロック信号を用いた場合と同一とする。また、ピッチの検出方法も、500kHz以上のクロック信号を用いた場合と同一である。
【0015】
上述の設計条件およびピッチの検出方法において、数式(1)および(3)を用いて算出されるピッチの誤差精度dは、0.408セント(30.9Hz)〜8.727セント(659Hz)となり、要求誤差精度を満たさない(なお、数式(2)を用いて算出される反応時間tは、6.07ms(659Hz)〜129ms(30.9Hz)となり、こちらは要求反応時間を満たす)。
【0016】
ここで、ピッチの誤差精度dを要求誤差精度である±1セント以内に抑えるには、数式(1)および(3)から、被測定信号の周期の検出回数Nを、4回から35回へ増やせばよいことが分かる。この結果を用いて、検出回数Nを35回とすると、ピッチの誤差精度dは、0.047セント(30.9Hz)〜0.995セント(659Hz)となり、要求誤差精度を満たすことになる。しかしながら、今度は、反応時間tが、53.1ms(659Hz)〜1133ms(30.9Hz)となってしまい、要求反応時間を満たさなくなる。
【0017】
このように、32.768kHzのクロック信号(カウンタクロック信号)を用いると、ピッチの誤差精度dあるいは反応時間tが、要求誤差精度あるいは要求反応時間を満たさない。言い換えると、従来のピッチ検出装置では、ただ単にクロック信号の周波数Fcを下げるだけでは、ピッチの誤差精度dと、反応時間tとの両方を、実用上問題のない値に維持することが困難となる。よって、従来のピッチ検出装置では、消費電力の抑制を抑制する目的で、クロック信号の周波数Fcを下げると、ピッチの誤差精度dと、反応時間tとの両方を、実用上問題のない値に維持した上で、クロック信号の周波数を下げ、その結果として、消費電流の抑制を行うことが困難となるという問題点があった。
【0018】
本発明は、上述した問題点を解決するためになされたものであり、被測定信号のピッチの誤差精度と、反応時間との両方を、実用上問題のない値に維持した上で、クロック信号の周波数を下げ、その結果として、消費電流の抑制を行うことができるピッチ検出装置を提供することを目的としている。
【課題を解決するための手段】
【0019】
この目的を達成するために請求項1記載のピッチ検出装置は、測定対象の信号である被測定信号が入力される入力手段と、その入力手段に入力される前記被測定信号のピッチを測定する基準となるクロック信号を生成するクロック生成手段と、そのクロック生成手段により生成されたクロック信号の1クロックを最小単位として前記入力手段に入力された被測定信号の1周期の時間長を求めることで、その被測定信号のピッチを算出するピッチ算出手段とを備えたものであり、前記被測定信号の波形の1周期を検出する周期検出手段と、その周期検出手段により検出された前記被測定信号の各1周期毎に、前記クロック信号の1クロックを前記最小単位とする時間長で前記被測定信号の1周期の時間を離散的に計測する周期計測手段と、その周期計測手段により離散的に計測された前記被測定信号の各1周期に対応する計測時間を前記被測定信号の1周期毎に累積加算し、得られた累積時間が、要求されるピッチの誤差精度を実現する最小計測時間以上となった場合に前記累積加算を終了する累積周期計測手段と、前記累積周期計測手段による累積加算が終了したときの、前記累積時間内に含まれる前記被測定信号の総波数を計数する総波数計数手段とを備え、前記ピッチ算出手段は、前記累積周期計測手段により計測された累積時間と、前記総波数計数手段により計数された総波数とから、前記被測定信号のピッチを算出するものである。
【0020】
なお、被測定信号の総波数は、例えば、累積周期計測手段による累積加算が終了したとき、その累積周期計測手段により、被測定信号の第1周期目の計測時間と、被測定信号の第2周期目の計測時間とが累積加算されている場合には、2(波数)となる。同様に、被測定信号の第1、第2および第3周期目の各計測時間が累積加算されている場合には、3(波数)となる。これは、請求項3についても同様である。
【0021】
請求項2記載のピッチ検出装置は、請求項1記載のピッチ検出装置において、前記最小計測時間は、前記ピッチ算出手段により前記被測定信号のピッチが算出される際に要求されるピッチの誤差精度と、前記周期計測手段が前記被測定信号の各1周期の計測を行なう際に前記最小単位とする前記クロック信号の周波数とから算出されるものである。
【0022】
請求項3記載のピッチ検出装置は、測定対象の信号である被測定信号が入力される入力手段と、その入力手段に入力される前記被測定信号のピッチを測定する基準となるクロック信号を生成するクロック生成手段と、そのクロック生成手段により生成されたクロック信号の1クロックを最小単位として、前記入力手段に入力された被測定信号の1周期に含まれるクロック数を求めることで、その被測定信号のピッチを算出するピッチ算出手段とを備えたものであり、前記被測定信号の波形の1周期を検出する周期検出手段と、その周期検出手段により検出された前記被測定信号の各1周期毎に、前記クロック信号の1クロックを前記最小単位として、前記被測定信号の1周期に含まれる前記クロック数をカウントするクロック数カウント手段と、そのクロック数カウント手段によりカウントされた前記被測定信号の各1周期に対応する前記クロック数を前記被測定信号の1周期毎に累積加算し、得られた累積クロック数が、要求されるピッチの誤差精度を実現する最小計測クロック数以上となった場合に前記累積加算を終了する累積クロック数カウント手段と、前記累積クロック数カウント手段による累積加算が終了したときの、前記累積クロック数内に含まれる前記被測定信号の総波数を計数する総波数計数手段とを備え、前記ピッチ算出手段は、前記クロック生成手段により生成されるクロック信号の周波数と、前記累積カウント手段により計測された累積クロック数と、前記総波数計数手段により計数された総波数とから、前記被測定信号のピッチを算出するものである。
【0023】
請求項4記載のピッチ検出装置は、請求項3記載のピッチ検出装置において、前記最小計測クロック数は、前記ピッチ算出手段により前記被測定信号のピッチが算出される際に要求されるピッチの誤差精度から算出されるものである。
【発明の効果】
【0024】
請求項1記載のピッチ検出装置によれば、累積周期計測手段は、周期計測手段により離散的に計測された被測定信号の各1周期における計測時間を、被測定信号の1周期毎に累積加算し、その累積時間が、要求されるピッチの誤差精度を実現する最小計測時間以上となった場合に、累積加算を終了する。また、総波数計数手段は、累積周期計測手段による累積加算が終了したときの累積時間内に含まれる被測定信号の総波数を計数する。そして、ピッチ算出手段は、累積周期計測手段により計測された累積時間と、総波数計数手段により計数された総波数とから、被測定信号のピッチを算出する。
【0025】
ここで、最小計測時間は、要求されるピッチの誤差精度を実現する時間である。よって、この最小計測時間以上の時間となるまで、被測定信号の各周期の時間を1周期毎に連続して繰返し離散的に計測し、得られた計測時間を累積加算して得た累積時間と、総波数計数手段により計数された総波数とから算出される被測定信号のピッチは、要求される誤差精度を満たすものとなる。これをより具体的に説明すると、前述の通り、累積周期計測手段は、周期計測手段により離散的に計測された被測定信号の各1周期の計測時間を、被測定信号の1周期毎に累積加算して、得られる累積時間が、最小計測時間以上となるまで累積加算を続ける。よって、累積周期計測手段は、被測定信号のピッチが高くなり、被測定信号の1周期の時間長が短くなる場合には、累積加算の回数を増やして、累積時間が、必ず、最小計測時間以上となるように動作する。一方、累積周期計測手段は、被測定信号のピッチが低くなり、被測定信号の1周期の時間長が長くなる場合には、累積加算の回数を減らして、累積時間が、やはり最小計測時間以上となるように動作する。このように、累積周期計測手段は、被測定信号のピッチに応じて、累積加算の回数を変化させ、累積時間が常時、最小計測時間以上となるように動作している。ここで、最小計測時間は、前述したように、要求されるピッチの誤差精度を実現する時間である。従って、累積時間を用いて上述の方法により算出される被測定信号のピッチは、要求される誤差精度を満たすのである。
【0026】
また、累積周期計測手段は、累積時間が最小計測時間以上となった場合には、累積加算を終了する。このように、累積周期計測手段による累積加算の終了を、累積時間が最小計測時間以上となった場合としているので、ピッチ算出手段が被測定信号のピッチを新たに算出するまでの時間(反応時間)を、楽音のピッチが幾らであっても、一定の時間以下、即ち、計測可能な最低音の周期と最小計測時間との和で求まる時間以下にすることができる。ここで、計測可能な最低音の周期と最小計測時間との和で求まる時間を、設計条件として要求される時間内とすることで、反応時間を、設定条件として要求される時間内に留めることができる。
【0027】
上述した結果から、本発明のピッチ検出装置によれば、被測定信号のピッチの誤差精度と、反応時間との両方を、設計条件として要求される値を満たした上で(実用上問題のない値に維持した上で)、クロック信号の周波数を下げることができるので、消費電流の抑制を実現すると同時に、実用上問題のない程度のピッチの誤差精度と、反応時間の両方を備えたチューナ装置の設計を行うことができるという効果がある。
【0028】
請求項2記載のピッチ検出装置によれば、請求項1記載のピッチ検出装置において、最小計測時間は、ピッチ算出手段により被測定信号のピッチが算出される際に要求されるピッチの誤差精度と、周期計測手段が前記被測定信号の各1周期の計測を行なう際に最小単位とするクロック信号の周波数とから算出される。よって、最小計測時間を、複雑な計算を行うことなく、簡単に求めることができるという効果がある。
【0029】
請求項3記載のピッチ検出装置によれば、請求項1記載のピッチ検出装置と同様の効果を奏することができる。また、請求項4記載のピッチ検出装置によれば、請求項2記載のピッチ検出装置と同様の効果を奏することができる。
【図面の簡単な説明】
【0030】
【図1】本発明のピッチ検出装置の一例である楽器用チューナの外観図である。
【図2】楽器用チューナの電気的構成を示したブロック図である。
【図3】メイン処理の流れを模式的に示した図である。
【図4】逐次加算処理を示したフローチャートである。
【図5】S2でYesと判定された場合における累積加算時間sumと定数T_SUM_MINとの関係を示した模式図である。
【図6】周波数Fcと定数T_SUM_MINとの関係を示した図である。
【図7】従来におけるピッチの算出方法を示すフローチャートである。
【発明を実施するための形態】
【0031】
以下、本発明の好ましい実施例について、添付図面を参照して説明する。図1は、本発明のピッチ検出装置の一例である楽器用チューナ1の外観図である。この楽器用チューナ1は、被測定信号として入力された楽音のピッチの誤差精度dと、反応時間tとの両方を、設計条件として要求される値を満たした上で、クロック信号の周波数を数十kHz程度まで下げることができるので、クロック信号の周波数が数百kHzである従来のピッチ検出装置に比べて消費電流の抑制を行うことができる装置である。
【0032】
なお、本実施形態の楽器用チューナ1では、設計条件を次の通りとしている。クロック信号の周波数Fcが32.768kHz、被測定信号の周波数fの検出範囲が30.9Hz〜659Hz、要求誤差精度が±1セント、要求反応時間が150ms以内としている。
【0033】
楽器用チューナ1は、デジタル表示器2と、マイク3と、アナログ表示器4とを有している。マイク3は、チューニングを行おうとする楽音(被測定信号)を集音するマイクロフォンである。デジタル表示器2は、マイク3で集音された楽音のピッチに最も近い音名を表示する表示器であり、7セグメントLEDを2つ並列に並べた構成となっている。例えば、楽譜上でト音記号における第2間の音名A(ラ)の楽音が入力された場合には、デジタル表示器2には、「A4」の表示が行われる。アナログ表示器4は、マイク3で集音された楽音のピッチとデジタル表示器2に表示される基準ピッチとの偏差(ピッチ差)を、セント単位で表示するアナログ表示器である。アナログ表示器4では、集音された楽音のピッチが基準ピッチよりも低ければ、アナログ表示器4の針5が左側に振れ、集音された楽音のピッチが基準ピッチよりも高ければ、アナログ表示器4の針5が右側に振れる。
【0034】
次に、図2を参照して、楽器用チューナ1の電気的構成について説明する。図2は、楽器用チューナ1の電気的構成を示したブロック図である。楽器用チューナ1は、CPU11と、ROM12と、RAM13と、マイク3と、コンパレータ14と、カウンタクロック発振子15と、デジタル表示器2と、アナログ表示器4とを有している。
【0035】
各部2,4,11〜13は、入出力ポート16にそれぞれ接続されている。CPU11は、入出力ポート16に接続された各部2,4,12,13とCPU11に接続された各部14,15とを制御する制御装置である。ROM12は、この楽器用チューナ1で実行される制御プログラム等を格納した書換不能なメモリである。図3で後述する処理は、制御プログラムに従ってCPU11により実行される。RAM13は各種のデータを一時的に記憶するためのメモリである。例えば、図3で示す処理に一時的に使用されるデータは、RAM13に記憶される。
【0036】
コンパレータ14は、マイク3から出力されたアナログ信号(マイク3で集音された楽音が変換された電気信号)を入力し、そのアナログ信号の立ち上がり時におけるゼロクロスを検出し、ゼロクロスを検出したタイミングで、ゼロクロス割込信号を出力する素子である。コンパレータ14は、入力が、マイク3の出力へ接続され、出力が、CPU11へ接続されている。
【0037】
カウンタクロック発振子15は、周波数Fcが32.768kHzのクロック信号を出力する水晶振動子である。このクロック信号を用いて、CPU11は、マイク3で集音された楽音のゼロクロス同士の間隔、即ち、集音された楽音の1周期を、クロック信号の1周期を基準の1単位として(最小単位として)、離散的に計測する。
【0038】
次に、図3を参照して、マイク3で集音された楽音のピッチを検出し、基準ピッチとの偏差を表示するメイン処理について説明する。図3は、CPU11で実行されるメイン処理の流れを模式的に示した図である。
【0039】
メイン処理では、まず、コンパレータ14は、入力立ち上りゼロクロスを検出し、その検出に対応するゼロクロス割込信号を、CPU11へ出力する。ここで、CPU11は、ゼロクロス割込信号の出力時間の間隔を、クロック信号の1クロックを1単位として離散的に計測する。(計測処理、ステップa)。
【0040】
次に、CPU11は、計測処理で離散的に計測されたゼロクロス割込信号の出力時間の間隔をもとに、自己相関処理を行う(ステップb)。この自己相関処理では、CPU11は、自己相関関数に基づいて、マイク3で集音された楽音の1周期、すなわちピッチを検出するための基本となる1周期を検出し、その1周期の時間長を、クロック信号の1クロックを最小単位として離散的に計測する。具体的には、クロック信号の1クロックを最小単位として離散的に計測された楽音の1周期の時間長を、次の数式(4)を用いて、マイク3で集音された楽音の1周期毎に、buf[0],buf[1],・・・,buf[n],・・・として得る。
buf[n]=clk/Fc ・・・数式(4)
ここで、buf[n]は、楽音の周期の時間長の計測におけるn+1回目の楽音の周期の計測値であり、単位は秒(s)である。clkは、マイク3で集音された楽音(被測定信号)の、n+1回目の1周期中にカウントされるクロック数を示している。また、Fcはクロック信号の周波数であり、単位はヘルツ(Hz)である。(また、1/Fcは、はクロック信号の周期であり単位は秒(s)である。)buf[0]は、楽音の1周期の時間長の計測結果の初回の(第1周期における)計測値、buf[1]は2回目の(第2周期における)計測値、同様にbuf[n]はn+1回目の(第n+1周期における)計測値である。
【0041】
次に、CPU11は、離散的に計測された楽音の1周期の各時間長を、1周期毎に、即ち、buf[0],buf[1],・・・,buf[n],・・・を、RAM13へ順次記憶する。
【0042】
そして、CPU11は、離散的に計測された楽音の1周期の各時間長を、1周期毎に累積加算することを主な処理とする逐次加算処理(ステップc)を行う。ここで、図4を参照して、逐次加算処理について説明する。図4は、逐次加算処理を示したフローチャートである。
【0043】
逐次加算処理(ステップc)では、まず、nおよびsumを初期化する(S1)。なお、nは、楽音の周期の「n+1」回目の計測を示す変数として使用され、さらにこの逐次加算処理では、クロック信号の1クロックを最小単位として離散的に計測された、楽音の1周期の各時間長であるbuf[0],buf[1],・・・を、1周期毎に、累積加算するためにも使用される。
【0044】
S1の処理後、累積加算時間sumが定数T_SUM_MIN以上であるか否かを判定する(S2)。ここで、累積加算時間sumは、次の数式(5)に示すように、buf[0],buf[1],・・・を、1周期毎に累積加算した結果である累積時間(合計時間)を示している。
sum=buf[0]+buf[1]+・・・buf[n],・・・ ・・・数式(5)
【0045】
また、定数T_SUM_MIN(単位は秒(s))は、要求誤差精度を実現するために必要となる楽音のピッチ計測の最小計測時間を示し、次の数式(6)と、後述する数式(7)とから理論的に計算される。
【0046】
p=1+1/{2^(d/1200)−1} ・・・数式(6)
この数式(6)は、数式(1)を変形して得られたものである。「^」は、べき乗を示し、dは、セントを単位とした、要求されるピッチの誤差精度を示している。これより、要求誤差精度dが決まれば、クロック信号の周波数に無関係に、要求誤差精度dを満たすために必要となるクロック数pが計算で一意に求められることがわかる。
【0047】
ここで、定数T_SUM_MINの意味と、その具体的な数値について説明する。なお、定数T_SUM_MINの説明の前に、この定数T_SUM_MINの決定に必要となる定数SUM_MINについて説明する。本実施形態の楽器用チューナ1では、前述の通り、要求誤差精度は±1セントであるので、dの絶対値(=1)を数式(6)に代入すると、p=1731.734・・・が得られる。この得られたpは、計算上求められる暫定値であり、要求誤差精度を実現するために必要となる最小のクロック数を示している。ここで、クロック数は、整数であるので、1731.734・・・以上の最小の整数である1732を、要求誤差精度を実現するために必要な最小のクロック数、即ち、定数SUM_MINとすればよい。また、定数T_SUM_MINは、前述の通り、要求誤差精度を実現するために必要となる楽音のピッチ計測の最小計測時間を示すものであり、数式(7)に示すように定数SUM_MINを用いて計算され、52.86msとなる。
T_SUM_MIN=SUM_MIN/Fc ・・・数式(7)
【0048】
S2の判定において、累積加算時間sumが定数T_SUM_MIN未満であると判定された場合には(S2:No)、buf[n]を、即ち、第n+1周期における楽音の1周期の時間長を、累積加算時間sumに累積加算する(S3)。そして、CPU11は、nを1加算して(S4)、S2の判定へ戻る。上述のS2〜S4の処理を繰り返すことで、楽音の1周期の時間長を、楽音の1周期毎に、順次累積加算する。この累積加算を繰り返し、S2の判定において、累積加算時間sumが定数T_SUM_MIN以上であると判定された場合には(S2:Yes)、累積加算の回数をNとして(S5)、この逐次加算処理を終了する。
【0049】
なお、S2の処理でYesと判定された場合の変数N(S5)は、逐次加算処理で行った累積加算の回数を示している。ここで、累積加算の回数Nは、例えば、buf[0]と、buf[1]とが累積加算されている場合には2回となる。同様に、buf[0]と、buf[1]と、buf[2]とが累積加算されている場合には3回となる。また、逐次加算処理で行った累積加算の回数Nは、楽音が何周期分、累積加算されたか、言い換えれば、楽音が何波数分、累積加算されたかを示している。なお、S5の処理で得られた累積加算の回数Nは、累積加算時間sumが定数T_SUM_MIN以上を満たす回数のうち、最小の累積加算の回数である。
【0050】
ここで、図5を参照して、S2でYesと判定された場合における累積加算時間sumと定数T_SUM_MINとの関係について説明する。図5は、S2でYesと判定された場合における両者の関係を示した模式図である。S2でYesと判定された場合には、累積加算時間sumが定数T_SUM_MIN以上と判定されるのであるが、このとき、累積加算時間sumと定数T_SUM_MINとの関係は、図5に示す通りとなる。即ち、数式(5)から分かるように、累積加算時間sumは、逐次加算処理によって、nが増加するに連れて楽音の1周期毎に増加する。そして、累積加算時間sumが定数T_SUM_MINを初めて越えた場合に、累積加算時間sumが定数T_SUM_MIN以上を満たす最小の累積加算の回数Nを得て、この逐次加算処理が終了となる。このとき、要求誤差精度を実現するために必要となる楽音のピッチ計測の最小計測時間である定数T_SUM_MINを超えて(つまり、要求誤差精度を実現するために必要なクロック信号の最小クロック数を示す定数SUM_MIN(=1732)のクロック周期倍を超えて)、楽音のピッチが離散的に計測されたことになる。よって、S2でYesと判定された場合には、要求誤差精度を満たしたと判定し、累積加算の回数をNとして(S5)、逐次加算処理を終了するのである。
【0051】
図3の説明に戻る。CPU11は、逐次加算処理(ステップc)が終了すると、逐次処理で算出された累積加算時間sum(逐次加算処理で累積加算された累積加算時間)と、逐次加算処理で得た、累積加算時間sumが定数T_SUM_MIN以上を満たす最小の累積加算の回数Nとを用いて、平均処理(ステップd)を行って、楽音の1周期平均時間長(平均周期)を求める。そして、求めた平均周期の逆数により、マイク3で集音された楽音のピッチを求める。
【0052】
そして、CPU11は、平均処理で求めた楽音のピッチと設定された基準ピッチの偏差を算出し、その算出した偏差を、アナログ表示器4へ表示する表示処理を実行する(ステップe)。なお、この表示処理と平行して、CPU11は、累積加算時間sumおよびbufの各値を初期化すると共に、ステップaに戻り、計測処理を再び実行する。
【0053】
ここで、上述したメイン処理を実行する楽器用チューナ1が、楽音のピッチ(周波数)fの検出範囲が30.9Hz〜659Hzである場合に、設計条件を満たしているか、即ち、ピッチの誤差精度dが±1セント以内であり、反応時間tが150ms以内であるかを検証する。
【0054】
上述の設計条件において、まず、ピッチの誤差精度dが±1セント以内であり、要求誤差精度を満たす理由について説明する。図4および図5に示されるように、逐次加算処理(ステップc)では、マイク3で集音された楽音の1周期の各周期における計測時間buf[0],buf[1],・・・を、累積加算時間sumが定数T_SUM_MIN以上となるまで、1周期毎に、逐次、累積加算する。この時、逐次加算処理(ステップc)では、累積加算時間sumが定数T_SUM_MIN以上を満たす最小の累積加算の回数Nを、楽音のピッチに応じて増減する。具体的には、楽音のピッチが高くなり、楽音の1周期の時間長が短くなるにつれて、累積加算の回数Nを増加し、累積加算時間sumが、必ず、定数T_SUM_MIN以上となるように動作する。一方、楽音のピッチが低くなり、楽音の1周期の時間長が長くなるにつれて、累積加算の回数Nを減少するが、その場合でも、累積加算時間sumが、やはり最低限、定数T_SUM_MIN以上となるように動作する。このように、逐次加算処理(ステップc)では、楽音のピッチに応じて、累積加算の回数Nが変化すると共に、累積加算時間sumが常時、定数T_SUM_MIN以上となるように動作している。よって、逐次加算処理(ステップc)を終了する時の累積加算の回数Nは、累積加算時間sumが常に定数T_SUM_MIN以上となる回数のうち、最小の回数となる。ここで、定数T_SUM_MINは、前述のように要求誤差精度を実現するために必要となる楽音のピッチ計測の最小計測時間である。従って、累積加算時間sumを用いて平均処理(ステップd)で算出される楽音のピッチは、要求誤差精度を満たすことになるのである。
【0055】
ここで、被測定信号の周波数fの検出範囲を30.9Hz〜659Hzとした場合について具体的に述べる。まず下限周波数f=30.9Hzの場合は、数式(3)´より、定数T_SUM_MIN以上となる場合、すなわち定数SUM_MIN=1732(クロック)以上を満たす累積加算の最小回数Nは2となることがわかる。このときのクロック数pは、数式(3)よりp=2121、よって数式(1)より、ピッチの測定誤差d=0.816セントとなり、要求誤差精度±1セントを満たすことがわかる。上限周波数f=659Hzの場合も同様にして、定数SUM_MIN=1732(クロック)以上を満たす累積加算の最小回数Nは35となり、このときのクロック数p=1740、ピッチの測定誤差d=0.995セントとなり、要求誤差精度±1セントを満たすことがわかる。
【0056】
次に、反応時間tが150ms以内であり要求反応時間を満たす理由について説明する。図4および図5に示されるように、逐次加算処理(ステップc)では、累積加算時間sumが定数T_SUM_MIN以上となった場合に、累積加算を終了する。このように、逐次加算処理(ステップc)における累積加算の終了を、累積加算時間sumが最小計測時間である定数T_SUM_MIN以上となった場合としているので、反応時間t(平均処理(ステップd)で楽音のピッチを新たに算出するまでの時間)の最小時間は、定数T_SUM_MINとなる。次に、反応時間tのばらつきについて述べる。逐次加算処理(ステップc)においては、累積時間sumが、計測された楽音のピッチの1周期の時間長毎に累積加算されることから、反応時間tのばらつき時間を考慮した最長計測時間は、定数T_SUM_MIN以上、{定数T_SUM_MIN+計側した楽音の1周期の時間長}未満となる。
【0057】
ここで、被測定信号の周波数fの検出範囲を30.9Hz〜659Hzとした場合について具体的に述べる。被測定信号の最低音の周波数f=30.9Hzの1周期の周期長は32.36ms、最高音の周波数f=659Hzの1周期の周期長は1.52msであるので、前述した、要求誤差精度±1セントを満たすときの定数T_SUM_MIN=52.86msより、反応時間tの取りうる範囲の上限は、最低音では85.22ms未満、最高音では54.38ms未満となり、要求反応時間が150ms以内を満たすことがわかる。
【0058】
即ち、従来におけるピッチの検出方法、具体的には、累積加算の回数を楽音のピッチの高低にかかわらず予め定められた回数だけ行う方法では、数式(2)から分かるように、反応時間は、被測定信号の周波数が低くなるとそれに反比例して増加してしまうが、本実施形態の楽器用チューナ1では、反応時間tは、楽音のピッチの高低にかかわらず、定数T_SUM_MINに近似する時間となるので、反応時間tのばらつきの範囲を、被測定信号(計測した楽音)の1周期の時間長未満内に抑えることができる。
【0059】
なお、反応時間tのばらつきの範囲は、前述したように被測定信号の1周期の時間長未満内に留まることから、結局、想定されるピッチ測定時間のばらつきの最長値は、被測定信号の最低音の1周期の時間長によって決まることになる。また、定数T_SUM_MINは、数式(6)および数式(7)からも明らかなように、要求誤差精度が決まれば、クロック信号の周波数から一意に求められる。これらの結果を利用して、本実施形態の楽器用チューナ1では、反応時間tが、要求反応時間以内となるように、クロック信号の周波数を決定することができる。具体的には、数式(6)および数式(7)を用いて、{定数T_SUN_MIN+被測定信号の最低音の1周期の時間長}が、要求反応時間を超えないように、クロック信号の周波数を決定する。
【0060】
このように、本実施形態の楽器用チューナ1によれば、楽音のピッチの誤差精度dと、反応時間tとの両方を、設計条件として要求される値を満たした上で(実用上問題のない値に維持した上で)、クロック信号の周波数を、例えば32.768kHzへ下げることができ、その結果、消費電流の抑制を行うことができる。
【0061】
また、本実施形態の楽器用チューナ1によれば、逐次加算処理(ステップc、図4参照)は、累積加算時間sumが、定数T_SUM_MIN以上となったとS2の処理により判定された場合に、累積加算時間sumが定数T_SUM_MIN以上を満たす最小の累積加算の回数Nを得て(S5)、累積加算を終了する。よって、逐次加算処理は、累積加算時間sumが、定数T_SUM_MIN以上となるまで、確実に、累積加算を続けることができる。従って、累積加算時間sumを用いて算出される楽音のピッチを、確実に、要求誤差精度を満たすものとすることができる。
【0062】
また、本実施形態の楽器用チューナ1によれば、要求誤差精度を実現するために必要となる楽音のピッチ計測の最小計測時間を示す定数T_SUM_MINは、数式(6)と数式(7)から明らかなように、要求誤差精度と、クロック信号の周波数とから算出される。よって、定数T_SUM_MINを、要求誤差精度を決めた上で、複雑な計算を行うことなく、簡単に求めることができる。
【0063】
以上、本実施形態に基づき本発明を説明したが、本発明は上記形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の変形改良が可能であることは容易に推察できるものである。
【0064】
上述した実施形態の楽器用チューナ1によれば、逐次加算処理(ステップc、図4参照)は、累積加算時間sumが、定数T_SUM_MIN以上となったとS2の処理により判定された場合に、累積加算時間sumが定数T_SUM_MIN以上を満たす最小の累積加算の回数Nを得て(S5)、累積加算を終了する。しかし、逐次加算処理(ステップc)における累積加算の終了の判断については、累積加算時間sumが最小計測時間である定数T_SUM_MIN以上となった場合とする以外にも、別の判断条件を設定しても良い。例えば、被測定信号の周期の累積加算の回数Nが小さい(たとえば3以下)場合には、自己相関処理時(ステップb時)において周期を比較する対象が限られるため(比較する対象となる周期の数が少ないため)、ノイズ等の影響により被測定信号の本来のピッチの周期とは異なる周期に誤判定をしてしまう場合がある。これを考慮して、累積加算時間sumが定数T_SUM_MIN以上であり、かつ、累積加算の回数Nが、自己相関処理時の正確なピッチ検出を可能にする回数であると共に、設計条件である要求反応時間を満たす反応時間を実現する回数である所定の回数M(例えば4)以上になることを条件として、逐次加算処理を終了してもよい。このように構成することで、ノイズや外乱によるピッチ検出ミスを減らし、安定したピッチ検出を実現することができる。
【0065】
また、上述した実施形態の楽器用チューナ1では、ステップbにおいて、楽音の1周期中にカウントされたクロック数を、クロック信号の周波数Fcにより時間に換算して(Fcで除算して)、楽音の1周期の時間長を1周期毎に算出した(数式(4)参照)。また、ステップcにおいて、要求誤差精度を実現するために必要なクロック数を示す定数SUM_MINを、同様に時間に換算して、定数T_SUM_MINを算出した(数式(7)参照)。しかし、これに限られるものではなく、ステップbおよびステップcで、クロック信号の周波数Fcによる時間換算を行わなくても良い。この構成について説明する。まず、ステップbでは、楽音の1周期中にカウントされたクロック数そのものを、楽音の1周期毎に、buf´[0],buf´[1],・・・buf´[n]に代入する(数式(4)で示された、時間を単位とするbuf[n]と区別するために、「´(ダッシュ)」を付与し、クロック信号の1クロックを単位としてbuf´[n]と表記する。後述のsum´も同様)。次に、ステップcでは、数式(6)だけを用いて、定数SUM_MINを算出して(定数T_SUM_MINは算出せず)、クロック数そのものを示すbuf´[0],buf´[1],・・・buf´[n]を、それらの累積加算クロック数sum´(逐次加算処理で累積加算されたクロック信号の合計クロック数)が定数SUM_MIN以上となるまで、楽音の1周期毎に累積加算する構成とする。そして、ステップdでは、累積加算クロック数sum´と、逐次加算処理で行った累積加算の回数(被測定信号の周期の検出回数)とを用いて、平均処理(ステップd)を行う。具体的には、累積加算クロック数sum´が定数SUM_MIN以上を満たす最小の累積加算の回数Nで、累積加算クロック数sum´を除算して、楽音の1周期中にカウントされたクロック信号の平均クロック数を求め、その求めた平均クロック数で、クロック信号の周波数Fcを除算して、マイク3で集音された楽音のピッチを求める処理とすれば良い。上述した構成の場合にも、楽音のピッチの誤差精度dと、反応時間tとの両方を、設計条件として要求される値を満たした上で、クロック信号の周波数を、例えば32.768kHzへ下げることで、消費電流の抑制を行うことができる。さらに、buf[n],sum,T_SUM_MINを、前述したような秒単位、あるいはクロック数単位(1/Fcを1クロックとする単位)以外の任意の単位に換算して、同様なピッチ算出処理を行ってもよい。
【0066】
上述した実施形態の楽器用チューナ1では、クロック信号の周波数Fcが32.768kHzのカウンタクロック発振子15を用いた場合に、反応時間tの上限が、54.38ms未満(659Hz)〜85.22ms未満(30.9Hz)となり、要求反応時間である150ms以内の反応時間を十分満たす結果となった。このとき、楽器用チューナ1では、要求反応時間に対して十分短い反応時間となっている。よって、楽器用チューナ1においては、自己相関処理時(ステップb時)のノイズによる誤判定等を考慮して、定数T_SUM_MINを、52.86msよりも長くしても良い。例えば、定数T_SUM_MINを、2倍の時間である105.72msとしても良い。この場合でも、応答時間tの上限は、107.24ms未満(659Hz)〜138.08ms未満(30.9Hz)となり、要求反応時間として要求される150ms以内を十分満たす。
【0067】
なお、このように定数T_SUM_MINを長くした場合、クロック信号の周波数Fcが一定のままで、楽器用チューナ1よりも更に高い誤差精度を実現できる。この理由について説明する。数式(6)で前述した通り、要求誤差精度dが決定されると、その要求誤差精度dを実現するために必要となるクロック信号の最小カウント数である定数SUM_MINが求まる。定数SUM_MINが求まると、数式(7)より、定数T_SUM_MINも求まる。このようにして求められた定数T_SUM_MINは、要求誤差精度を実現するために必要となる「最低限の」測定時間を示している。よって、定数T_SUM_MINよりも測定時間を長くすると、最低限の測定時間よりも長くなった定数T_SUM_MIN´(最低限の測定時間を示す定数T_SUM_MINと区別して「´(ダッシュ)」を付与する)に基づいて、要求誤差精度を実現するために必要となる最低限の測定時間よりも長い時間をかけて、楽音の1周期が繰り返し計測されることになる。ここで、楽音のピッチは、前述のように、繰返し測定された楽音の1周期の時間長が累積加算されて累積時間が求められ、その累積時間を、累積加算した回数で平均化して求められるわけであるが、測定時間が長くなると、その累積加算の回数が増えると共に累積時間も長くなる。累積時間が長くなれば、累積時間内に含まれるクロック数も増える。これはすなわち、ピッチの誤差精度dを算出する数式(1)において、クロック数pが増えることに他ならない。ここで、クロック数pが増えると、ピッチの誤差精度dの値が小さくなり、高いピッチ測定精度が実現できることは数式(1)より明らかである。よって、クロック信号の周波数Fcが一定の場合、要求誤差精度を実現するために必要となる最低限の測定時間よりも長くなった定数T_SUM_MIN´を使ってピッチ検出を行うことで、楽器用チューナ1よりも更に高いピッチ測定精度が実現されるのである。
【0068】
また、上述した実施形態の楽器用チューナ1では、ピッチの誤差精度dが±1セント、反応時間tが150ms以内を設計条件としたが、両設計条件は、これに限られるものではない。例えば、要求反応時間を、500ms以内としても良い。この場合には、クロック信号の周波数Fcを、上述した楽器用チューナ1の場合よりも、更に下げることができる。この理由について説明する。要求反応時間を長くするということは、最小計測時間である定数T_SUM_MINを長くするということである。数式(7)に示されるように、定数T_SUM_MINは、クロック信号の周波数Fcに反比例する。この関係は、図6に示すように、関数f(x)のグラフで示す関係となる。関数f(x)から決定される定数T_SUM_MINは、対応するクロック信号の周波数がFcである場合に、要求誤差精度を実現するために必要となる「最低限の」測定時間を示している。よって、要求反応時間を長くすれば、即ち、定数T_SUM_MINの値が大きくなれば、図6から明らかなように、クロック周波数を低くすることができることがわかる。
【0069】
ここで再び、ある一定のクロック信号の周波数Fc(任意の値)において、最低測定時間である定数T_SUM_MINよりも測定時間の長い定数T_SUM_MIN´をピッチ検出に用いることで測定精度が上がることについて、図6と対比させて説明する。ある一定のクロック信号の周波数Fc(任意の値)において、定数T_SUM_MINは、関数f(x)のグラフ上の座標点である一方で、最低測定時間である定数T_SUM_MINよりも測定時間の長い定数T_SUM_MIN´は、関数f(x)のグラフ上を越えた領域aに存在することになる。これはつまり、領域a内に座標点を持つクロック信号の周波数Fc、定数T_SUM_MIN´を用いてピッチ検出を行うと、要求誤差精度を実現するために必要となる「最低限」の測定時間よりも長く、ピッチ検出が行われることを示している。
【0070】
なお、クロック信号の周波数Fcが一定の場合、測定時間が長くなるにつれて、より高いピッチ測定精度が実現されることは前述した通りであるが、今度は、定数T_SUM_MIN´が一定の場合について述べる。図6から分かるように、クロック信号の周波数Fcの値と定数T_SUM_MINの値とは反比例の関係(関数f(x)のグラフで示す関係)を保ちつつ変化するので、領域a内にある座標のうち、定数T_SUM_MIN´が一定の場合、ピッチ測定精度はクロック信号の周波数Fcに応じて変化する。具体的には、数式(7)から明らかなように、定数T_SUM_MIN´が一定でクロック信号の周波数Fcが高くなると、累積時間内に含まれるクロック数である定数SUM_MIN´が増加すると共に、ピッチ測定精度も高くなる。逆に、クロック周波数Fcが低くなると、定数SUM_MIN´が減少すると共に、ピッチ測定精度も低くなる。ここで、クロック信号の周波数Fcの値と定数T_SUM_MIN´の値との座標点に着目すると、図6から分かるように、その座標点が領域a内に存在している限り、ピッチ測定精度は、少なくとも要求精度dを満たしていることが分かる。さらに、その座標点が、領域a内に存在し、且つ、関数f(x)のグラフからより離れた位置にあるほど、ピッチ測定精度は向上することが分かる。
【0071】
なお、要求反応時間を500msとした場合には、一般的なチューナよりも、反応時間tが長くなるので、これを補うべく、逐次加算処理(ステップc)の実行中はデジタル表示器2を点滅させ、逐次加算処理(ステップc)が完了した時に、デジタル表示器2を点灯させても良いし、或いは、逐次加算処理の完了時にデジタル表示器2を点灯させると共に、デジタル表示器2とは別のLEDを設けてそのLEDを点灯させることで、ピッチの算出が完了したことを報知しても良い。これにより、要求反応時間を長くしても、ユーザは、ピッチの検出の最中であることや、楽音のピッチの検出が完了したことを、容易に把握することができる。
【0072】
また、上述した実施形態の楽器用チューナ1では、設計時に要求誤差精度および要求反応時間を予め設定し、その設定した要求反応時間を満たし、かつ要求誤差精度を実現する楽音のピッチ計測の最小計測時間である定数T_SUM_MINを求めたが、これに限られるものではなく、要求誤差精度および要求反応時間の両方、或いは一方を、楽器用チューナ1上で可変調整可能にして、ユーザが自由に設定する構成としても良い。この場合、本実施形態の楽器用チューナ1で用いられる定数であるT_SUM_MINおよびSUM_MINが、変数として用いられることになる。これにより、楽器用チューナ1の楽音のピッチの誤差精度と反応時間の両方、或いは一方を、ユーザの好みに調整することができる。
【0073】
また、上述した実施形態の楽器用チューナ1では、要求誤差精度および要求反応時間を予め設定し、要求誤差精度を実現する最小計測時間を予め計算により求めて、その求めた最小計測時間を、楽音のピッチを計測する時間としたが、これに限られるものではない。即ち、要求誤差精度を満たすように予め計算により求められた最小計測時間が、要求反応時間よりも短時間となった場合には、楽音のピッチを計測する時間を、最小計測時間以上、要求反応時間以下の時間内で、ユーザが自由に設定する構成としても良い。このように楽音のピッチを測定する時間を設定することで、要求反応時間を満たすと共に、要求誤差精度よりも更に精度の高いピッチの誤差精度を実現することができる。
【0074】
また、上述した実施形態の楽器用チューナ1では、要求誤差精度を実現するために必要となる最小計測時間である定数T_SUM_MINを固定値として、累積時間が初めて定数T_SUM_MINよりも長くなったときに、累積加算を終えて入力された楽音のピッチ検出を行ったが、これに限られるものではない。すなわち、入力された楽音の1周期の時間長を、入力された楽音の1周期毎に累積加算してsumを求め、sumがクロック信号の1周期の時間長分、すなわち1/Fcずれた場合の誤差となるピッチの測定誤差精度dを、次の数式(1´)を用いて直接求め、求めたピッチの誤差精度dが要求誤差精度以下になったときに、入力された楽音の1周期毎に行われる累積加算を終えて、入力された楽音のピッチ検出を行ってもよい。
d=1200*log2(sum/(sum−1/Fc)) ・・・数式(1´)
なお、数式(1´)は、数式(1)のクロック数pを、sum×Fcで置き換えたものである。
【0075】
ここで、上述した実施形態の楽器用チューナ1では、予め要求誤差精度を1セントと定め、数式(1)を変形した数式(6)、および数式(7)より、ピッチの誤差精度dが1セント以下を実現するために必要となるクロック信号の最小計測時間を示す定数T_SUM_MIN(=52.86ms)を得たわけであるが、数式(1´)を用いる方法は、定数T_SUM_MINを使用しない一つの方法である。ただし、得られる結果は、結局、上述した実施形態の楽器用チューナ1と同じとなる。その理由を次に説明する。
【0076】
一定の周期を持つクロック信号を最小単位として用いた楽音のピッチ測定においては、数式(1),(6),(7)から分かるように、ピッチの誤差精度dが1セント以下を実現するために必要となる最小計測時間である定数T_SUM_MINは、一意に求められる。これにより、数式(1)で用いられたpをsum×Fcへ置き換えた数式(1´)から、ピッチの誤差精度dを満たす最小値として一意に求まるsumも、結局、数式(1)を用いて求まる値(ピッチの測定精度dが1セント以下を実現する値)、即ち、上述した実施形態の楽器用チューナ1における定数T_SUM_MINと同値となるからである。
【0077】
また、本実施形態の楽器用チューナ1では、立ち上がりゼロクロスのみを検出する方法(片エッジゼロクロス検出による方法)を示したが、これに限られるものではなく、立ち上りゼロクロスと立ち下がりゼロクロスとの両方を検出する方法(両エッジゼロクロス法)でも良い。或いは、ピーク検出による方法でも良い。
【0078】
本実施形態の楽器用チューナ1では、計測処理(ステップa)で、コンパレータ14から出力されたゼロクロス割込信号を用いて、マイク3で集音された楽音の1周期を検出したが、これに限られるものではなく、例えば、マイク3で集音されたのち、ADコンバータ(アナログ−デジタルコンバータ)を介してRAM13に記憶された楽音を使用して、CPU11(或いは、DSP:デジタルシグナルプロセッサ)に、ゼロクロス間の時間を求めさせて、マイク3で集音された楽音の1周期を検出する構成としても良い。
【0079】
また、本実施形態では、楽音のピッチを算出し、その算出したピッチと基準ピッチとの偏差をアナログ表示器4に表示する楽器用チューナを、本発明のピッチ検出装置の一適用例としたが、これに限られるものではなく、算出した楽音のピッチをパラメータとして取り込み、集音した楽音に効果音を付加する、または変調をかけるエフェクタを、本発明のピッチ検出装置の適用例としても良い。この適用例の場合には、楽器用チューナ1のメイン処理から、表示処理を除く構成とすれば良い。なお、この適用例では、装置自体の消費電力を減らすことが目的ではなく、例えば、カウンタクロック発振子15の周波数を高く設定して、ピッチの誤差精度dを高めたり、或いは反応時間tを短縮することで、低音から高音までの幅広い音高レンジを持つ楽音に対して、聴感上違和感なく、ピッチの算出結果に基づいた所望のエフェクト効果をかけることを目的としている。なお、このようなエフェクタとしては、例えば、ボーカル入力に対して、ユニゾン・パートを歌うボーカル1声を付加するダブリングエフェクタや、集音された楽音のピッチに対して指定されたピッチ分シフトした音を付加するハーモナイザなどがある。
【符号の説明】
【0080】
1 楽器用チューナ(ピッチ検出装置)
2 デジタル表示器(基準ピッチ設定手段)
3 マイク(入力手段)
15 カウンタクロック発振子(クロック生成手段)
S2 逐次加算処理(累積周期計測手段の一部、累積クロック数カウント手段の一部)
S3,S4 逐次加算処理(累積周期計測手段の一部、累積クロック数カウント手段の一部)
自己相関処理(周期検出手段、周期計測手段、クロック数カウント手段)
逐次加算処理(総波数計数手段)
平均処理(ピッチ算出手段)
累積加算時間sum(累積周期計測手段の一部)

【特許請求の範囲】
【請求項1】
測定対象の信号である被測定信号が入力される入力手段と、
その入力手段に入力される前記被測定信号のピッチを測定する基準となるクロック信号を生成するクロック生成手段と、
そのクロック生成手段により生成されたクロック信号の1クロックを最小単位として前記入力手段に入力された被測定信号の1周期の時間長を求めることで、その被測定信号のピッチを算出するピッチ算出手段とを備えたピッチ検出装置であって、
前記被測定信号の波形の1周期を検出する周期検出手段と、
その周期検出手段により検出された前記被測定信号の各1周期毎に、前記クロック信号の1クロックを前記最小単位とする時間長で前記被測定信号の1周期の時間を離散的に計測する周期計測手段と、
その周期計測手段により離散的に計測された前記被測定信号の各1周期に対応する計測時間を前記被測定信号の1周期毎に累積加算し、得られた累積時間が、要求されるピッチの誤差精度を実現する最小計測時間以上となった場合に前記累積加算を終了する累積周期計測手段と、
前記累積周期計測手段による累積加算が終了したときの、前記累積時間内に含まれる前記被測定信号の総波数を計数する総波数計数手段とを備え、
前記ピッチ算出手段は、前記累積周期計測手段により計測された累積時間と、前記総波数計数手段により計数された総波数とから、前記被測定信号のピッチを算出することを特徴とするピッチ検出装置。
【請求項2】
前記最小計測時間は、前記ピッチ算出手段により前記被測定信号のピッチが算出される際に要求されるピッチの誤差精度と、前記周期計測手段が前記被測定信号の各1周期の計測を行なう際に前記最小単位とする前記クロック信号の周波数とから算出されるものであることを特徴とする請求項1記載のピッチ検出装置。
【請求項3】
測定対象の信号である被測定信号が入力される入力手段と、
その入力手段に入力される前記被測定信号のピッチを測定する基準となるクロック信号を生成するクロック生成手段と、
そのクロック生成手段により生成されたクロック信号の1クロックを最小単位として、前記入力手段に入力された被測定信号の1周期に含まれるクロック数を求めることで、その被測定信号のピッチを算出するピッチ算出手段とを備えたピッチ検出装置であって、
前記被測定信号の波形の1周期を検出する周期検出手段と、
その周期検出手段により検出された前記被測定信号の各1周期毎に、前記クロック信号の1クロックを前記最小単位として、前記被測定信号の1周期に含まれる前記クロック数をカウントするクロック数カウント手段と、
そのクロック数カウント手段によりカウントされた前記被測定信号の各1周期に対応する前記クロック数を前記被測定信号の1周期毎に累積加算し、得られた累積クロック数が、要求されるピッチの誤差精度を実現する最小計測クロック数以上となった場合に前記累積加算を終了する累積クロック数カウント手段と、
前記累積クロック数カウント手段による累積加算が終了したときの、前記累積クロック数内に含まれる前記被測定信号の総波数を計数する総波数計数手段とを備え、
前記ピッチ算出手段は、前記クロック生成手段により生成されるクロック信号の周波数と、前記累積カウント手段により計測された累積クロック数と、前記総波数計数手段により計数された総波数とから、前記被測定信号のピッチを算出することを特徴とするピッチ検出装置。
【請求項4】
前記最小計測クロック数は、前記ピッチ算出手段により前記被測定信号のピッチが算出される際に要求されるピッチの誤差精度から算出されるものであることを特徴とする請求項3記載のピッチ検出装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate