def karplus_strong(freq, tau=2e4, memory=white_noise):
  """
  Karplus-Strong "digitar" synthesis algorithm.

  Parameters
  ----------
  freq :
    Frequency, in rad/sample.
  tau :
    Time decay (up to ``1/e``, or -8.686 dB), in number of samples. Defaults
    to 2e4. Be careful: using the default value will make duration different
    on each sample rate value. Use ``sHz`` if you need that independent from
    the sample rate and in seconds unit.
  memory :
    Memory data for the comb filter (delayed "output" data in memory).
    Defaults to the ``white_noise`` function.

  Returns
  -------
  Stream instance with the synthesized data.

  Note
  ----
  The fractional delays are solved by exponent linearization.

  See Also
  --------
  sHz :
    Second and hertz constants from samples/second rate.
  white_noise :
    White noise stream generator.

  """
  return comb.tau(2 * pi / freq, tau).linearize()(zeros(), memory=memory)