docs: 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()