Example #1
0
    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)
Example #2
0
 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))
Example #3
0
    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)
Example #4
0
    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)
Example #5
0
 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))
Example #6
0
 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))
Example #7
0
 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))
Example #8
0
 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')
Example #9
0
    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))
Example #10
0
    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))
Example #11
0
 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')
Example #12
0
    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')
Example #13
0
    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')
Example #14
0
    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')
Example #15
0
    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')
Example #16
0
    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')
Example #17
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 = 1
        out = osc.play(length)
        out.write('tests/renders/osc2d_RND_randlist_randwt_guitar_10x.wav')

        self.assertEqual(len(out), int(length * out.samplerate))
Example #18
0
    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')
Example #19
0
    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)
Example #20
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))
Example #21
0
 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')
Example #22
0
    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')
Example #23
0
    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')
Example #24
0
    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')
Example #25
0
    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')
Example #26
0
    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))
Example #27
0
    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))
Example #28
0
 def test_graph_cos_wavetable(self):
     wt = dsp.wt('cos')
     wt.graph('tests/renders/graph_cos_wavetable.png', stroke=3)
Example #29
0
 def test_graph_rsaw_wavetable(self):
     wt = dsp.wt('rsaw')
     wt.graph('tests/renders/graph_rsaw_wavetable.png', stroke=3)
Example #30
0
 def test_graph_square_wavetable(self):
     wt = dsp.wt('square')
     wt.graph('tests/renders/graph_square_wavetable.png', stroke=3)
Example #31
0
 def test_graph_rsaw_wavetable(self):
     wt = dsp.wt('rsaw')
     wt.graph('tests/renders/graph_rsaw_wavetable.png', stroke=3)
Example #32
0
 def test_graph_cos_wavetable(self):
     wt = dsp.wt('cos')
     wt.graph('tests/renders/graph_cos_wavetable.png', stroke=3)
Example #33
0
 def test_graph_square_wavetable(self):
     wt = dsp.wt('square')
     wt.graph('tests/renders/graph_square_wavetable.png', stroke=3)
Example #34
0
 def test_random_wavetable(self):
     length = random.randint(1, 1000)
     wt = dsp.wt('rnd', wtsize=length)
     self.assertEqual(length, len(wt))
Example #35
0
 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))
Example #36
0
 def test_cut_bad(self):
     wt = dsp.wt('sine', wtsize=4092)
     wt = wt.cut(-100, -100)
     self.assertEqual(1, len(wt))
Example #37
0
 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')
Example #38
0
 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')
Example #39
0
 def test_random_wavetable(self):
     length = random.randint(1, 1000)
     wt = dsp.wt('rnd', wtsize=length)
     self.assertEqual(length, len(wt))