Ejemplo n.º 1
0
    def test_rmul_soundbuffers(self):
        snd = SoundBuffer([1, 2, 3])
        snd2 = SoundBuffer([1, 3, 5])
        result = SoundBuffer([1, 6, 15])

        self.assertEqual(snd2 * snd, result)
        self.assertEqual(snd, SoundBuffer([1, 2, 3]))
Ejemplo n.º 2
0
    def test_create_empty_buffer(self):
        sound = SoundBuffer()

        self.assertTrue(len(sound) == 0)
        self.assertTrue(not sound)

        sound = SoundBuffer(length=1)
        self.assertEqual(len(sound), 44100)
        self.assertTrue(sound)
Ejemplo n.º 3
0
    def test_slice_frame(self):
        # A SoundBuffer should return a single frame
        #    when sliced into one-dimensionally like:
        #
        #        frame = sound[frame_index]
        #
        #    A frame is a tuple of floats, one value
        #    for each channel of sound.
        sound = SoundBuffer(filename='tests/sounds/guitar1s.wav')

        indices = (0, -1, len(sound) // 2, -(len(sound) // 2))

        for frame_index in indices:
            frame = sound[frame_index]
            self.assertTrue(isinstance(frame, tuple))
            self.assertEqual(len(frame), sound.channels)
            self.assertTrue(isinstance(frame[0], float))
Ejemplo n.º 4
0
    def test_slice_sample(self):
        # Slicing into the second dimension of a SoundBuffer
        #    will return a single sample at the given channel index.
        #
        #        sample = sound[frame_index][channel_index]
        #
        #    Note: A sample is a float, usually between -1.0 and 1.0
        #    but pippi will only clip overflow when you ask it to, or
        #    when writing a SoundBuffer back to a file.
        #    So, numbers can exceed that range during processing and
        #    be normalized or clipped as desired later on.

        sound = SoundBuffer(filename='tests/sounds/guitar1s.wav')

        indices = (0, -1, len(sound) // 2, -(len(sound) // 2))

        for frame_index in indices:
            for channel_index in range(sound.channels):
                sample = sound[frame_index][channel_index]
                self.assertTrue(isinstance(sample, float))
Ejemplo n.º 5
0
    def test_div_soundbuffers(self):
        snd = SoundBuffer([1, 2, 3])
        self.assertEqual(len(snd), 3)

        self.assertEqual(snd / 1.5, SoundBuffer([1 / 1.5, 2 / 1.5, 3 / 1.5]))
        self.assertEqual(snd, SoundBuffer([1, 2, 3]))

        self.assertEqual(snd / 2, SoundBuffer([1 / 2, 2 / 2, 2 / 3]))
        self.assertEqual(snd, SoundBuffer([1, 2, 3]))

        self.assertEqual(snd / 0, SoundBuffer([0, 0, 0]))
        self.assertEqual(snd, SoundBuffer([1, 2, 3]))

        self.assertEqual(snd / SoundBuffer([1, 3, 5]),
                         SoundBuffer([1 / 1, 2 / 3, 3 / 5]))
        self.assertEqual(snd, SoundBuffer([1, 2, 3]))

        self.assertEqual(
            SoundBuffer([1, 3, 5]) / snd, SoundBuffer([1 / 1, 3 / 2, 5 / 3]))
        self.assertEqual(snd, SoundBuffer([1, 2, 3]))

        snd /= 2
        self.assertEqual(snd, SoundBuffer([1 / 2, 2 / 2, 3 / 2]))
Ejemplo n.º 6
0
    def test_sub_soundbuffers(self):
        snd = SoundBuffer([1, 2, 3])
        self.assertEqual(len(snd), 3)

        self.assertEqual(snd - 1.5, SoundBuffer([-0.5, 0.5, 1.5]))
        self.assertEqual(snd, SoundBuffer([1, 2, 3]))

        self.assertEqual(snd - 2, SoundBuffer([-1, 0, 1]))
        self.assertEqual(snd, SoundBuffer([1, 2, 3]))

        self.assertEqual(snd - SoundBuffer([1, 3, 5]), SoundBuffer([0, -1,
                                                                    -2]))
        self.assertEqual(snd, SoundBuffer([1, 2, 3]))

        self.assertEqual(SoundBuffer([1, 3, 5]) - snd, SoundBuffer([0, 1, 2]))
        self.assertEqual(snd, SoundBuffer([1, 2, 3]))

        snd -= 2
        self.assertEqual(snd, SoundBuffer([-1, 0, 1]))
Ejemplo n.º 7
0
    def test_add_soundbuffers(self):
        snd = SoundBuffer([1, 2, 3])
        self.assertEqual(len(snd), 3)
        self.assertEqual(snd + 2, SoundBuffer([3, 4, 5]))
        self.assertEqual(snd, SoundBuffer([1, 2, 3]))

        r = snd + SoundBuffer([1, 3, 5])
        print(len(r))
        for v in r:
            print(v)

        self.assertEqual(snd + SoundBuffer([1, 3, 5]),
                         SoundBuffer([1, 2, 3, 1, 3, 5]))
        self.assertEqual(snd, SoundBuffer([1, 2, 3]))

        self.assertEqual(
            SoundBuffer([1, 3, 5]) + snd, SoundBuffer([1, 3, 5, 1, 2, 3]))
        self.assertEqual(snd, SoundBuffer([1, 2, 3]))

        snd += 2
        self.assertEqual(snd, SoundBuffer([3, 4, 5]))
Ejemplo n.º 8
0
 def test_imul_soundbuffer(self):
     snd = SoundBuffer([1, 2, 3])
     mul = SoundBuffer([2, 2, 2])
     result = SoundBuffer([2, 4, 6])
     snd *= mul
     self.assertEqual(snd, result)
Ejemplo n.º 9
0
 def test_imul_scalar(self):
     snd = SoundBuffer([1, 2, 3])
     result = SoundBuffer([2, 4, 6])
     snd *= 2
     self.assertEqual(snd, result)
Ejemplo n.º 10
0
 def test_mul_scalar(self):
     snd = SoundBuffer([1, 2, 3])
     result = SoundBuffer([2, 4, 6])
     self.assertEqual(len(snd), 3)
     self.assertEqual(snd * 2, result)
     self.assertEqual(snd, SoundBuffer([1, 2, 3]))