Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWalter Bender <walter.bender@gmail.com>2012-06-23 20:40:03 (GMT)
committer Walter Bender <walter.bender@gmail.com>2012-06-23 20:40:03 (GMT)
commit704724bb94970553226c3f2247a1045f4ef94a9e (patch)
tree9a597ae734bcdb100c0c525c815ed202a1c45cb0
parent9889aa1f1eef63acd4e6c50acc78b301a92e475a (diff)
improved logging of freq.
-rw-r--r--audiograb.py15
1 files changed, 11 insertions, 4 deletions
diff --git a/audiograb.py b/audiograb.py
index 745cceb..6f349ea 100644
--- a/audiograb.py
+++ b/audiograb.py
@@ -293,11 +293,18 @@ class AudioGrab():
def _sample_frequency(self, data_buffer):
''' The maximum frequency in the sample '''
- r = []
- for j in rfft(data_buffer):
- r.append(abs(j))
+ buf = rfft(data_buffer)
+ buf = abs(buf)
+ maxi = buf.argmax()
+ if maxi == 0:
+ pitch = 0.0
+ else: # Simple interpolation
+ a, b, c = buf[maxi - 1], buf[maxi], buf[maxi + 1]
+ maxi -= a / float(a + b + c)
+ maxi += c / float(a + b + c)
+ pitch = maxi * 48000 / (len(buf) * 2)
# Convert output to Hertz
- return r.index(max(r)) * 48000. / len(data_buffer)
+ return pitch
def _calibrate_resistance(self, data_buffer):
''' Return calibrated value for resistance '''