docs: async def remove(self, index=""):
          """
          The remove command
  
          Args:
              index (str): The index to remove, can be either a number, or a range in the for '##-##'
          """
  
          if not self.state == 'ready':
              logger.debug("Trying to remove from wrong state '{}'".format(self.state))
              return
  
          if index == "":
              self.statuslog.error("Must provide index to remove")
              return
          elif index == "all":
              self.queue = []
              self.update_queue()
              self.statuslog.info("Removed all songs")
              return
  
          indexes = index.split("-")
          self.logger.debug("Removing {}".format(indexes))
  
          try:
              if len(indexes) == 0:
                  self.statuslog.error("Remove must specify an index or range")
                  return
              elif len(indexes) == 1:
                  num_lower = int(indexes[0]) - 1
                  num_upper = num_lower + 1
              elif len(indexes) == 2:
                  num_lower = int(indexes[0]) - 1
                  num_upper = int(indexes[1])
              else:
                  self.statuslog.error("Cannot have more than 2 indexes for remove range")
                  return
          except TypeError:
              self.statuslog.error("Remove index must be a number")
              return
          except ValueError:
              self.statuslog.error("Remove index must be a number")
              return
  
          if num_lower < 0 or num_lower >= len(self.queue) or num_upper > len(self.queue):
              if len(self.queue) == 0:
                  self.statuslog.warning("No songs in queue")
              elif len(self.queue) == 1:
                  self.statuslog.error("Remove index must be 1 (only 1 song in queue)")
              else:
                  self.statuslog.error("Remove index must be between 1 and {}".format(len(self.queue)))
              return
  
          if num_upper <= num_lower:
              self.statuslog.error("Second index in range must be greater than first")
              return
  
          lower_songname = self.queue[num_lower][1]
          for num in range(0, num_upper - num_lower):
              self.logger.debug("Removed {}".format(self.queue[num_lower][1]))
              self.queue.pop(num_lower)
  
          if len(indexes) == 1:
              self.statuslog.info("Removed {}".format(lower_songname))
          else:
              self.statuslog.info("Removed songs {}-{}".format(num_lower + 1, num_upper))
  
          self.update_queue()