docs: def with_onsets(fft_feature):
      """
      Produce a mixin class that extracts onsets
      :param fft_feature: The short-time fourier transform feature
      :return: A mixin class that extracts onsets
      """
  
      class Onsets(BaseModel):
          onset_prep = ArrayWithUnitsFeature(
              SlidingWindow,
              needs=fft_feature,
              wscheme=HalfLapped() * Stride(frequency=1, duration=3),
              store=False)
  
          complex_domain = ArrayWithUnitsFeature(
              ComplexDomain,
              needs=onset_prep,
              store=False)
  
          sliding_detection = ArrayWithUnitsFeature(
              SlidingWindow,
              needs=complex_domain,
              wscheme=HalfLapped() * Stride(frequency=1, duration=11),
              padwith=5,
              store=False)
  
          slices = TimeSliceFeature(
              MovingAveragePeakPicker,
              needs=sliding_detection,
              aggregate=np.median,
              store=True)
  
      return Onsets