def test_wtclass(self): wt1 = dsp.wt(dsp.RND, 4096) wt2 = dsp.wt(dsp.TRI, 4096) wt3 = dsp.wt([random.random() + 0.001 for _ in range(1000)]) self.assertTrue(max(wt1) > 0) self.assertTrue(max(wt2) > 0) self.assertTrue(max(wt3) > 0) self.assertEqual(len(wt1), 4096) self.assertEqual(len(wt2), 4096) self.assertEqual(len(wt3), 1000)
def test_pulsar_mask(self): osc = Pulsar('sine', window='sine', pulsewidth=dsp.wt('tri', 0, 1), mask=dsp.wt('phasor', 0, 1), freq=200.0, amp=0.2) length = 10 out = osc.play(length) out.write('tests/renders/osc_pulsar_mask.wav') self.assertEqual(len(out), int(length * out.samplerate))
def test_wtclass(self): wt1 = dsp.wt('rnd', wtsize=4096) wt2 = dsp.wt('tri', wtsize=4096) wt3 = dsp.wt([ random.random()+0.001 for _ in range(1000) ], wtsize=1000) self.assertTrue(max(wt1) > 0) self.assertTrue(max(wt2) > 0) self.assertTrue(max(wt3) > 0) self.assertEqual(len(wt1), 4096) self.assertEqual(len(wt2), 4096) self.assertEqual(len(wt3), 1000)
def test_wtclass(self): wt1 = dsp.wt('rnd', wtsize=4096) wt2 = dsp.wt('tri', wtsize=4096) wt3 = dsp.wt([random.random() + 0.001 for _ in range(1000)], wtsize=1000) self.assertTrue(max(wt1) > 0) self.assertTrue(max(wt2) > 0) self.assertTrue(max(wt3) > 0) self.assertEqual(len(wt1), 4096) self.assertEqual(len(wt2), 4096) self.assertEqual(len(wt3), 1000)
def test_create_pulsar2d(self): osc = Pulsar2d(['sine', 'square', 'tri', 'sine'], windows=['sine', 'tri', 'hann'], wt_mod=dsp.wt('saw', 0, 1), win_mod=dsp.wt('rsaw', 0, 1), pulsewidth=dsp.wt('tri', 0, 1), freq=200.0, amp=0.2) length = 30 out = osc.play(length) out.write('tests/renders/osc_pulsar2d.wav') self.assertEqual(len(out), int(length * out.samplerate))
def test_pulsar_mask(self): osc = Pulsar( 'sine', window='sine', pulsewidth=dsp.wt('tri', 0, 1), mask=dsp.wt('phasor', 0, 1), freq=200.0, amp=0.2 ) length = 10 out = osc.play(length) out.write('tests/renders/osc_pulsar_mask.wav') self.assertEqual(len(out), int(length * out.samplerate))
def test_create_pulsar2d(self): osc = Pulsar2d( ['sine', 'square', 'tri', 'sine'], windows=['sine', 'tri', 'hann'], wt_mod=dsp.wt('saw', 0, 1), win_mod=dsp.wt('rsaw', 0, 1), pulsewidth=dsp.wt('tri', 0, 1), freq=200.0, amp=0.2 ) length = 30 out = osc.play(length) out.write('tests/renders/osc_pulsar2d.wav') self.assertEqual(len(out), int(length * out.samplerate))
def test_harmonics(self): wt = dsp.wt('sine') wt = wt.harmonics() wt.graph('tests/renders/graph_harmonics.png', stroke=3) osc = Osc(wt, freq=80) out = osc.play(10) out.write('tests/renders/osc_harmonics.wav')
def test_create_sinewave(self): osc = Osc('sine', freq=200.0) length = 1 out = osc.play(length) out.write('tests/renders/osc_sinewave.wav') self.assertEqual(len(out), int(length * out.samplerate)) wtA = [ random.random() for _ in range(random.randint(10, 1000)) ] osc = Osc(wtA, freq=200.0) length = 1 out = osc.play(length) out.write('tests/renders/osc_rand_list_wt.wav') self.assertEqual(len(out), int(length * out.samplerate)) wtB = dsp.wt([ random.random() for _ in range(random.randint(10, 1000)) ]) osc = Osc(wtB, freq=200.0) length = 1 out = osc.play(length) out.write('tests/renders/osc_rand_wt_wt.wav') self.assertEqual(len(out), int(length * out.samplerate)) wtC = SoundBuffer(filename='tests/sounds/guitar1s.wav') osc = Osc(wtC, freq=200.0) length = 1 out = osc.play(length) out.write('tests/renders/osc_guitar_wt.wav') self.assertEqual(len(out), int(length * out.samplerate))
def test_create_sinewave(self): osc = Osc('sine', freq=200.0) length = 1 out = osc.play(length) out.write('tests/renders/osc_sinewave.wav') self.assertEqual(len(out), int(length * out.samplerate)) wtA = [random.random() for _ in range(random.randint(10, 1000))] osc = Osc(wtA, freq=200.0) length = 1 out = osc.play(length) out.write('tests/renders/osc_rand_list_wt.wav') self.assertEqual(len(out), int(length * out.samplerate)) wtB = dsp.wt( [random.random() for _ in range(random.randint(10, 1000))]) osc = Osc(wtB, freq=200.0) length = 1 out = osc.play(length) out.write('tests/renders/osc_rand_wt_wt.wav') self.assertEqual(len(out), int(length * out.samplerate)) wtC = SoundBuffer(filename='tests/sounds/guitar1s.wav') osc = Osc(wtC, freq=200.0) length = 1 out = osc.play(length) out.write('tests/renders/osc_guitar_wt.wav') self.assertEqual(len(out), int(length * out.samplerate))
def test_long_graincloud(self): sound = SoundBuffer(filename='tests/sounds/linux.wav') length = 90 grainlength = dsp.wt('hann', 0.01, 0.08) grid = dsp.wt('hann', 0.01, 0.05) out = sound.cloud( length, grainlength=grainlength, grid=grid, spread=0.5, ) framelength = int(length * sound.samplerate) self.assertEqual(len(out), framelength) out.write('tests/renders/test_long_graincloud.wav')
def test_save_and_load_wt(self): wt = dsp.wt('sine', wtsize=4096) self.assertEqual(len(wt), 4096) wt.write('tests/renders/wavetable_sine.wav') wt.graph('tests/renders/wavetable_sine-original.png') wt = dsp.load('tests/renders/wavetable_sine.wav') wt.graph('tests/renders/wavetable_sine-reloaded.png')
def test_graincloud_with_extreme_speed_lfo(self): sound = SoundBuffer(filename='tests/sounds/guitar1s.wav') length = 30 speed = dsp.wt('hann', 1, 100) framelength = int(length * sound.samplerate) out = sound.cloud(length=length, speed=speed) self.assertEqual(len(out), framelength) out.write('tests/renders/graincloud_with_extreme_speed_lfo.wav')
def test_create_osc2d(self): wtA = [ random.random() for _ in range(random.randint(10, 1000)) ] wtB = dsp.wt([ random.random() for _ in range(random.randint(10, 1000)) ]) wtC = SoundBuffer(filename='tests/sounds/guitar1s.wav') stack = ['rnd', wtA, wtB, wtC] * 10 out = Osc2d(stack, freq=200.0).play(10) out.write('tests/renders/osc2d_RND_randlist_randwt_guitar_10x.wav') out = Osc2d(['tri', 'sine'], freq=[200.0, 400, 600], freq_interpolator='trunc').play(10) out.write('tests/renders/osc2d_freq_trunc.wav')
def test_graincloud_with_length_lfo(self): sound = SoundBuffer(filename='tests/sounds/guitar1s.wav') grainlength = dsp.wt('hann', 0.01, 0.1) length = 10 framelength = int(length * sound.samplerate) out = sound.cloud(length, grainlength=grainlength) self.assertEqual(len(out), framelength) out.write('tests/renders/graincloud_with_length_lfo.wav')
def test_create_wt_stack(self): wtA = [ random.random() for _ in range(random.randint(10, 1000)) ] wtB = dsp.wt([ random.random() for _ in range(random.randint(10, 1000)) ]) wtC = SoundBuffer(filename='tests/sounds/guitar1s.wav') stack = ['rnd', wtA, wtB, wtC] * 10 osc = Osc2d(stack, freq=200.0) length = 1 out = osc.play(length) out.write('tests/renders/osc2d_RND_randlist_randwt_guitar_10x.wav') self.assertEqual(len(out), int(length * out.samplerate))
def test_create_mono_buffer_from_wavetable(self): wt = dsp.wt('sine', wtsize=4096) self.assertTrue(len(wt) == 4096) snd = dsp.buffer(wt) self.assertTrue(len(snd) == 4096) self.assertTrue(snd[100][0] != 0) snd = SoundBuffer(wt) self.assertTrue(len(snd) == 4096) self.assertTrue(snd[100][0] != 0)
def test_create_wt_stack(self): wtA = [ random.random() for _ in range(random.randint(10, 1000)) ] wtB = dsp.wt([ random.random() for _ in range(random.randint(10, 1000)) ]) wtC = SoundBuffer(filename='tests/sounds/guitar1s.wav') stack = ['rnd', wtA, wtB, wtC] * 10 osc = Osc2d(stack, freq=200.0) length = 10 out = osc.play(length) out.write('tests/renders/osc2d_RND_randlist_randwt_guitar_10x.wav') self.assertEqual(len(out), int(length * out.samplerate))
def test_create_tukey(self): length = 10 shape = dsp.win(shapes.win('sine', length=3), 0, 0.5) chord = tune.chord('i9', octave=2) out = dsp.buffer(length=length) for freq in chord: freq = dsp.wt('sinc', freq, freq*4) l = Tukey(freq=freq, shape=shape).play(length) l = l.pan(dsp.rand()) out.dub(l) out = fx.norm(out, 0.8) out.write('tests/renders/osc_tukey.wav')
def test_create_pulsar(self): osc = Pulsar( 'sine', window='sine', pulsewidth=dsp.wt('tri', 0, 1), freq=200.0, amp=0.2 ) length = 10 out = osc.play(length) out.write('tests/renders/osc_pulsar.wav') osc = Pulsar( 'sine', window='sine', pulsewidth=dsp.wt('tri', 0, 1), freq=[200.0, 210, 220, 300, 310, 320]*4, freq_interpolator='trunc', amp=0.2 ) length = 10 out = osc.play(length) out.write('tests/renders/osc_pulsar_trunc.wav')
def test_graincloud_with_speed_lfo(self): sound = SoundBuffer(filename='tests/sounds/guitar1s.wav') minspeed = random.triangular(0.05, 1) maxspeed = minspeed + random.triangular(0.5, 10) speed = dsp.wt('rnd', minspeed, maxspeed) cloud = grains.Cloud(sound, grainlength=0.04, speed=speed) length = 30 framelength = int(length * sound.samplerate) out = cloud.play(length) self.assertEqual(len(out), framelength) out.write('tests/renders/graincloud_with_speed_lfo.wav')
def test_graincloud_with_read_lfo(self): sound = SoundBuffer(filename='tests/sounds/linux.wav') cloud = grains.Cloud( sound, position=dsp.wt('hann') * sound.dur, ) length = 30 framelength = int(length * sound.samplerate) out = cloud.play(length) self.assertEqual(len(out), framelength) out.write('tests/renders/test_graincloud_with_read_lfo.wav')
def test_pulsar_from_waveset(self): sound = SoundBuffer(filename='tests/sounds/guitar1s.wav') waveset = Waveset(sound, limit=20, modulo=1) waveset.normalize() osc = Pulsar2d(waveset, windows=['sine'], wt_mod=dsp.wt('saw', 0, 1), win_mod=0.0, pulsewidth=1.0, freq=80.0, amp=0.8) length = 30 out = osc.play(length) out.write('tests/renders/waveset_pulsar2d_wavetables-80hz.wav') self.assertEqual(len(out), int(length * out.samplerate))
def test_pulsar_from_waveset(self): sound = SoundBuffer(filename='tests/sounds/guitar1s.wav') waveset = Waveset(sound, limit=20, modulo=1) waveset.normalize() osc = Pulsar2d( waveset, windows=['sine'], wt_mod=dsp.wt('saw', 0, 1), win_mod=0.0, pulsewidth=1.0, freq=80.0, amp=0.8 ) length = 30 out = osc.play(length) out.write('tests/renders/waveset_pulsar2d_wavetables-80hz.wav') self.assertEqual(len(out), int(length * out.samplerate))
def test_graph_cos_wavetable(self): wt = dsp.wt('cos') wt.graph('tests/renders/graph_cos_wavetable.png', stroke=3)
def test_graph_rsaw_wavetable(self): wt = dsp.wt('rsaw') wt.graph('tests/renders/graph_rsaw_wavetable.png', stroke=3)
def test_graph_square_wavetable(self): wt = dsp.wt('square') wt.graph('tests/renders/graph_square_wavetable.png', stroke=3)
def test_random_wavetable(self): length = random.randint(1, 1000) wt = dsp.wt('rnd', wtsize=length) self.assertEqual(length, len(wt))
def test_rcut(self): wt = dsp.wt('sine', wtsize=4092) wt.graph('tests/renders/wavetable_prercut.png') wt = wt.rcut(100) wt.graph('tests/renders/wavetable_rcut.png') self.assertEqual(100, len(wt))
def test_cut_bad(self): wt = dsp.wt('sine', wtsize=4092) wt = wt.cut(-100, -100) self.assertEqual(1, len(wt))
def test_stretch(self): sound = SoundBuffer(filename='tests/sounds/linux.wav') waveset = Waveset(sound) factor = dsp.wt('phasor', 1, 10) out = waveset.stretch(factor) out.write('tests/renders/waveset_stretch.wav')