Display an animated light chaser pattern
        Chase will last ticks * duration seconds
        :param duration: How long each chase step will last in seconds
        :param num_lights: How many lights in the chase (1 to 4)
        :param ticks: How many chase steps.

def chase(self, duration: float = 0.08, num_lights: int = 2, ticks: int = 20):
        """
        Display an animated light chaser pattern
        Chase will last ticks * duration seconds
        :param duration: How long each chase step will last in seconds
        :param num_lights: How many lights in the chase (1 to 4)
        :param ticks: How many chase steps.
        """
        seq = [
            button_from_name('Chan Down'),
            button_from_name('Bank'),
            button_from_name('Chan Up'),
            button_from_name('Output'),
            button_from_name('Off'),
            button_from_name('Undo'),
            button_from_name('Loop'),
            button_from_name('User'),
            button_from_name('Punch'),
            button_from_name('Shift'),
            button_from_name('Mix'),
            button_from_name('Read'),
        ]

        num_lights = num_lights if num_lights in [1, 2, 3, 4] else 2

        its = [cycle(seq) for _ in range(num_lights)]
        for i, it in enumerate(its):
            if i:
                consume(it, i * (len(seq) // num_lights))

        for x in range(ticks):
            for it in its:
                button = next(it)
                self.light_on(button)
            time.sleep(duration)
            self.all_off()