class_docstr: Random time stretching
  
  For each deformation, the rate parameter is drawn from a
  log-normal distribution with parameters `(location, scale)`
  
  - Annotations
      - all: time, duration
      - tempo: values
  - metadata
      - duration
  - Audio
  
  Attributes
  ----------
  n_samples : int > 0
      The number of samples to generate
  
  location : float
  scale : float > 0
      Parameters of a log-normal distribution from which
      rate parameters are sampled.
  
  rng : None, int, or np.random.RandomState
      The random number generator state.
  
      If `None`, then `np.random` is used.
  
      If `int`, then `rng` becomes the seed for the random state.
  
  See Also
  --------
  TimeStretch
  LogspaceTimeStretch
  numpy.random.lognormal
code: def __init__(self, n_samples=3, location=0.0, scale=1.0e-1, rng=None):
      AbstractTimeStretch.__init__(self)
  
      if scale <= 0:
          raise ValueError("scale parameter must be strictly positive.")
  
      if n_samples <= 0:
          raise ValueError("n_samples must be strictly positive")
  
      self.n_samples = n_samples
      self.location = location
      self.scale = scale
      self.rng = rng
      self._rng = _get_rng(rng)
  
imports: import pyrubberband
  import numpy
  from ..base import BaseTransformer, _get_rng
label_desc: Use image node_id 1 to create a new RandomTimeStretch object from inherited base classes: AbstractTimeStretch with example: obj = RandomTimeStretch(n_samples, location, scale, rng)