def test_save(self) : samplerate = 44100 data = self.fourSinusoids(samples=400) wavefile.save("file.wav", data, samplerate=samplerate) readsamplerate, readdata = wavefile.load("file.wav") np_assert_almost_equal(readdata, data, decimal=7) self.assertEqual(readsamplerate, samplerate)
def test_save(self): samplerate = 44100 data = self.fourSinusoids(samples=400) wavefile.save("file.wav", data, samplerate=samplerate) readsamplerate, readdata = wavefile.load("file.wav") np_assert_almost_equal(readdata, data, decimal=7) self.assertEqual(readsamplerate, samplerate)
def test_save_asCOrder(self): samplerate = 44100 data = self.fourSinusoids(samples=400) data = np.ascontiguousarray(data) wavefile.save("file.wav", data, samplerate=samplerate) readsamplerate, readdata = wavefile.load("file.wav") np_assert_almost_equal(readdata, data, decimal=7) self.assertEqual(readsamplerate, samplerate)
def test_save_asCOrder(self) : samplerate = 44100 data = self.fourSinusoids(samples=400) data = np.ascontiguousarray(data) wavefile.save("file.wav", data, samplerate=samplerate) readsamplerate, readdata = wavefile.load("file.wav") np_assert_almost_equal(readdata, data, decimal=7) self.assertEqual(readsamplerate, samplerate)
def write3Channels(self): self.saw = np.linspace(0, 1, 10).astype(np.float32) self.sin = np.sin(2 * np.pi * self.saw).astype(np.float32) self.sqr = np.concatenate((np.ones(5), -np.ones(5))).astype(np.float32) self.input = np.array([self.saw, self.sin, self.sqr]).T.copy() wavefile.save("file.wav", self.input, 44100)
import numpy as np # Lets setup some synthesis audio: def sinusoid(samples, f, samplerate=44100): return np.sin(np.linspace(0, 2*np.pi*f*samples/samplerate, samples))[:,np.newaxis] def channels(*args): return np.hstack(args).T audio = channels( sinusoid(100000, 440), sinusoid(100000, 880), sinusoid(100000, 1760), ) # This is how you save it wavefile.save("sinusoid.wav", audio, 44100) # And this is how you load it again loadedsamplerate, loaded = wavefile.load("sinusoid.wav") print("Loaded audio has shape", loaded.shape) channel1, channel2, channel3 = loaded
def write3Channels(self) : self.saw = np.linspace(0,1,10).astype(np.float32) self.sin = np.sin(2*np.pi*self.saw).astype(np.float32) self.sqr = np.concatenate((np.ones(5), -np.ones(5))).astype(np.float32) self.input = np.array([self.saw, self.sin, self.sqr]).T.copy() wavefile.save("file.wav", self.input, 44100)
def test_save_swappedAxis_deprecationWarning(self): data = self.fourSinusoids(samples=400) frameFirst = np.ascontiguousarray(data.T) with self.assertWarnsRegex(DeprecationWarning, "First dimension should be the channel."): wavefile.save("file.wav", frameFirst, samplerate=44100)
def test_save_monoInSingleDimension_forConvenience(self): data = self.sinusoid(samples=400, f=440)[0] self.assertEqual(data.shape, (400, )) wavefile.save("file.wav", data, samplerate=44100) # Read still provides the channel dimension self.assertLoadWav('file.wav', data.reshape((1, 400)))
def test_save_swappedAxis_fixesThem_deprecated(self): data = self.fourSinusoids(samples=400) frameFirst = np.ascontiguousarray(data.T) wavefile.save("file.wav", frameFirst, samplerate=44100) self.assertLoadWav('file.wav', data)
def test_save_asCOrder(self): data = self.fourSinusoids(samples=400) data = np.ascontiguousarray(data) wavefile.save("file.wav", data, samplerate=44100) self.assertLoadWav('file.wav', data)
def test_save_longerThanAFrame(self): data = self.fourSinusoids(samples=600) # >512 wavefile.save("file.wav", data, samplerate=44100) self.assertLoadWav('file.wav', data)
def test_save_slice(self): data = self.fourSinusoids(samples=400) #data = np.ascontiguousarray(data) wavefile.save("file.wav", data[:, ::2], samplerate=44100) self.assertLoadWav('file.wav', data[:, ::2])
def test_save(self): data = self.fourSinusoids(samples=400) wavefile.save("file.wav", data, samplerate=44100) self.assertLoadWav("file.wav", data)