docs: def _applyMultichan(samples, func):
      # type: (np.ndarray, Callable[[np.ndarray], np.ndarray]) -> np.ndarray
      """
      Apply func to each channel of audio data in samples
      """
      if len(samples.shape) == 1 or samples.shape[1] == 1:
          newsamples = func(samples)
      else:
          y = np.array([])
          for i in range(samples.shape[1]):
              y = np.concatenate((y, func(samples[:,i])))
          newsamples = y.reshape(samples.shape[1], -1).T
      return newsamples