from aubio.aubiowrapper import *
-
buf_size = 1024
hop_size = 256
channels = 2
+precision = 6
+
class aubio_phasevoc_test(unittest.TestCase):
def setUp(self):
del_aubio_pvoc(self.o)
def test_create(self):
- """ test creation and deletion of phasevoc object """
+ """ create and delete phasevoc object """
pass
def test_zeroes(self):
- """ test phasevoc object on zeroes """
- input = new_fvec(hop_size, channels)
+ """ run phasevoc object on zeroes """
+ input = new_fvec(hop_size, channels)
fftgrain = new_cvec(buf_size, channels)
- aubio_pvoc_do (self.o, input, fftgrain)
- aubio_pvoc_rdo(self.o, fftgrain, input)
- for index in range(buf_size):
+ output = new_fvec(hop_size, channels)
+ for index in range(hop_size):
for channel in range(channels):
self.assertEqual(0., fvec_read_sample(input, channel, index))
+ aubio_pvoc_do (self.o, input, fftgrain)
+ aubio_pvoc_rdo(self.o, fftgrain, output)
+ for index in range(hop_size):
+ for channel in range(channels):
+ self.assertEqual(0., fvec_read_sample(output, channel, index))
+ del input
+ del fftgrain
+
+ def test_ones(self):
+ """ run phasevoc object on ones """
+ input = new_fvec(hop_size, channels)
+ fftgrain = new_cvec(buf_size, channels)
+ output = new_fvec(hop_size, channels)
+ for index in range(hop_size):
+ for channel in range(channels):
+ fvec_write_sample(input, 1., channel, index)
+ self.assertEqual(1., fvec_read_sample(input, channel, index))
+ # make sure the first buf_size-hop_size samples are zeroes
+ for i in range(buf_size/hop_size - 1):
+ aubio_pvoc_do (self.o, input, fftgrain)
+ aubio_pvoc_rdo(self.o, fftgrain, output)
+ for index in range(hop_size):
+ for channel in range(channels):
+ self.assertAlmostEqual(0., fvec_read_sample(output, channel, index), precision)
+ # make sure the first non zero input is correctly resynthesised
+ aubio_pvoc_do (self.o, input, fftgrain)
+ aubio_pvoc_rdo(self.o, fftgrain, output)
+ for index in range(hop_size):
+ for channel in range(channels):
+ self.assertAlmostEqual(1., fvec_read_sample(output, channel, index), precision)
+ del input
+ del fftgrain