docs: def read_frames(self, frame_size, hop_size, offset=0,
                      duration=None, buffer_size=5760000):
          """
          Generator that reads and returns the samples of the track in frames.
  
          Args:
              frame_size (int): The number of samples per frame.
              hop_size (int): The number of samples between two frames.
              offset (float): The time in seconds, from where to start
                              reading the samples (rel. to the track start).
              duration (float): The length of the samples to read in seconds.
  
          Returns:
              Generator: A generator yielding a tuple for every frame.
              The first item is the frame,
              the second the sampling-rate and
              the third a boolean indicating if it is the last frame.
          """
          if duration is not None:
              end = offset + duration
          else:
              end = float('inf')
  
          return audio.read_frames(
              self.path,
              frame_size,
              hop_size,
              start=offset,
              end=end,
              buffer_size=buffer_size)