def test_write_edge_values(self): # Write edge values 1.0 samples = numpy.ones((441, 1), dtype=numpy.float32) dest_file = NamedTemporaryFile(delete=True) wfile, infos = wav.open_write_mode(dest_file.name, 44100, 1) wav.write_block(wfile, samples) wfile._file.flush() # To force the file to be written to the disk frame_rate, samples_written = sp_wavfile.read(dest_file.name) numpy.testing.assert_array_equal(samples_written, numpy.array([2**15 - 1] * 441, dtype=numpy.int16)) dest_file.close() # Write value 2.0, clipped to 1.0 samples = numpy.ones((441, 1), dtype=numpy.float32) * 2.0 dest_file = NamedTemporaryFile(delete=True) wfile, infos = wav.open_write_mode(dest_file.name, 44100, 1) wav.write_block(wfile, samples) wfile._file.flush() # To force the file to be written to the disk frame_rate, samples_written = sp_wavfile.read(dest_file.name) numpy.testing.assert_array_equal(samples_written, numpy.array([2**15 - 1] * 441, dtype=numpy.int16)) dest_file.close() # Write edge values -1.0 samples = numpy.ones((441, 1), dtype=numpy.float32) * -1 dest_file = NamedTemporaryFile(delete=True) wfile, infos = wav.open_write_mode(dest_file.name, 44100, 1) wav.write_block(wfile, samples) wfile._file.flush() # To force the file to be written to the disk frame_rate, samples_written = sp_wavfile.read(dest_file.name) numpy.testing.assert_array_equal(samples_written, numpy.array([-2**15] * 441, dtype=numpy.int16)) dest_file.close()
def write_mono_test(self): samples = numpy.ones((4410, 1)) / 44100.0 * 2 * numpy.pi * 440 dest_file = NamedTemporaryFile(delete=True) wfile, infos = wav.open_write_mode(dest_file.name, 44100, 1) wav.write_block(wfile, samples) wfile._file.flush() # To force the file to be written to the disk frame_rate, samples_written = sp_wavfile.read(dest_file.name) self.assertEqual(frame_rate, 44100) self.assertEqual(samples_written.shape, (4410,)) numpy.testing.assert_array_equal(samples[:10,0].round(3), (samples_written[:10] / float(2**15)).round(3)) dest_file.close()
def write_mono_test(self): samples = numpy.ones((4410, 1)) / 44100.0 * 2 * numpy.pi * 440 dest_file = NamedTemporaryFile(delete=True) wfile, infos = wav.open_write_mode(dest_file.name, 44100, 1) wav.write_block(wfile, samples) wfile._file.flush() # To force the file to be written to the disk frame_rate, samples_written = sp_wavfile.read(dest_file.name) self.assertEqual(frame_rate, 44100) self.assertEqual(samples_written.shape, (4410, )) numpy.testing.assert_array_equal(samples[:10, 0].round(3), (samples_written[:10] / float(2**15)).round(3)) dest_file.close()
def test_write_edge_values(self): # Write edge values 1.0 samples = numpy.ones((441, 1), dtype=numpy.float32) dest_file = NamedTemporaryFile(delete=True) wfile, infos = wav.open_write_mode(dest_file.name, 44100, 1) wav.write_block(wfile, samples) wfile._file.flush() # To force the file to be written to the disk frame_rate, samples_written = sp_wavfile.read(dest_file.name) numpy.testing.assert_array_equal( samples_written, numpy.array([2**15 - 1] * 441, dtype=numpy.int16)) dest_file.close() # Write value 2.0, clipped to 1.0 samples = numpy.ones((441, 1), dtype=numpy.float32) * 2.0 dest_file = NamedTemporaryFile(delete=True) wfile, infos = wav.open_write_mode(dest_file.name, 44100, 1) wav.write_block(wfile, samples) wfile._file.flush() # To force the file to be written to the disk frame_rate, samples_written = sp_wavfile.read(dest_file.name) numpy.testing.assert_array_equal( samples_written, numpy.array([2**15 - 1] * 441, dtype=numpy.int16)) dest_file.close() # Write edge values -1.0 samples = numpy.ones((441, 1), dtype=numpy.float32) * -1 dest_file = NamedTemporaryFile(delete=True) wfile, infos = wav.open_write_mode(dest_file.name, 44100, 1) wav.write_block(wfile, samples) wfile._file.flush() # To force the file to be written to the disk frame_rate, samples_written = sp_wavfile.read(dest_file.name) numpy.testing.assert_array_equal( samples_written, numpy.array([-2**15] * 441, dtype=numpy.int16)) dest_file.close()