code: def _get_reference_beat_variations(reference_beats):
      
  
      # Create annotations at twice the metric level
      interpolated_indices = np.arange(0, reference_beats.shape[0]-.5, .5)
      original_indices = np.arange(0, reference_beats.shape[0])
      double_reference_beats = np.interp(interpolated_indices,
                                         original_indices,
                                         reference_beats)
      # Return metric variations:
      # True, off-beat, double tempo, half tempo odd, and half tempo even
      return (reference_beats,
              double_reference_beats[1::2],
              double_reference_beats,
              reference_beats[::2],
              reference_beats[1::2])
docs: Return metric variations of the reference beats
  
      Parameters
      ----------
      reference_beats : np.ndarray
          beat locations in seconds
  
      Returns
      -------
      reference_beats : np.ndarray
          Original beat locations
      off_beat : np.ndarray
          180 degrees out of phase from the original beat locations
      double : np.ndarray
          Beats at 2x the original tempo
      half_odd : np.ndarray
          Half tempo, odd beats
      half_even : np.ndarray
          Half tempo, even beats