def test_pitchdetection_run_zeroes(self):
""" run pitchdetection on an empty buffer """
vec = new_fvec(buf_size, channels)
+ out = new_fvec(1, channels)
for i in range(100):
- self.assertEqual(aubio_pitchdetection_do(self.o,vec),0.)
+ aubio_pitchdetection_do(self.o,vec, out)
+ self.assertEqual(fvec_read_sample(out, 0, 0),0.)
del vec
def test_pitchdetection_run_4_impulses(self):
""" run pitchdetection on a train of 4 impulses """
vec = new_fvec(buf_size, channels)
+ out = new_fvec(1, channels)
fvec_write_sample(vec,-1.,0, 0)
fvec_write_sample(vec, 1.,0, buf_size/4)
fvec_write_sample(vec,-1.,0, buf_size/2)
fvec_write_sample(vec, 1.,0,3*buf_size/4)
frequency = samplerate/2*4/buf_size
for i in range(100):
- self.assertEqual(aubio_pitchdetection_do(self.o,vec),frequency)
+ aubio_pitchdetection_do(self.o,vec, out)
+ self.assertEqual(fvec_read_sample(out, 0, 0),frequency)
del vec
def test_pitchdetection_run_4_positive_impulses(self):
""" run pitchdetection on a train of 4 positive impulses of arbitrary size """
vec = new_fvec(buf_size, channels)
+ out = new_fvec(1, channels)
frequency = samplerate/2*8/buf_size
for i in range(100):
fvec_write_sample(vec, 2.-.01*i,0, 0)
fvec_write_sample(vec, 2.-.01*i,0, buf_size/4)
fvec_write_sample(vec, 2.-.01*i,0, buf_size/2)
fvec_write_sample(vec, 2.-.01*i,0,3*buf_size/4)
- self.assertAlmostEqual(aubio_pitchdetection_do(self.o,vec),frequency,1)
+ aubio_pitchdetection_do(self.o,vec, out)
+ self.assertAlmostEqual(fvec_read_sample(out, 0, 0),frequency,1)
del vec
def test_pitchdetection_run_4_negative_impulses(self):
""" run pitchdetection on a train of 4 negative impulses of arbitrary size """
vec = new_fvec(buf_size, channels)
+ out = new_fvec(1, channels)
frequency = samplerate/2*8/buf_size
for i in range(1,100):
fvec_write_sample(vec,-.01*i,0, 0)
fvec_write_sample(vec,-.01*i,0, buf_size/4)
fvec_write_sample(vec,-.01*i,0, buf_size/2)
fvec_write_sample(vec,-.01*i,0,3*buf_size/4)
- self.assertAlmostEqual(aubio_pitchdetection_do(self.o,vec),frequency,1)
+ aubio_pitchdetection_do(self.o,vec, out)
+ self.assertAlmostEqual(fvec_read_sample(out, 0, 0),frequency,1)
del vec
def test_pitchdetection_run_8_impulses(self):
""" run pitchdetection on a train of 8 impulses """
vec = new_fvec(buf_size, channels)
+ out = new_fvec(1, channels)
fvec_write_sample(vec, 1.,0, 0)
fvec_write_sample(vec,-1.,0, buf_size/8)
fvec_write_sample(vec, 1.,0, buf_size/4)
fvec_write_sample(vec, 1.,0,3*buf_size/4)
fvec_write_sample(vec,-1.,0,7*buf_size/8)
for i in range(100):
- self.assertAlmostEqual(aubio_pitchdetection_do(self.o,vec),
+ aubio_pitchdetection_do(self.o,vec, out)
+ self.assertAlmostEqual(fvec_read_sample(out, 0, 0),
samplerate/2/buf_size*8, 1)
del vec