pyFDN.build_fdn#

pyFDN.build_fdn(*, delays=None, N=None, rt=2.0, matrix='orthogonal', feedback=None, input_gain=None, output_gain=None, direct=0.0, trainable=None, fs=48000.0, nfft=16384, output='time', device=None, dtype=None, rng=None)[source]#

Build a trainable flamo Shell from a config.

Parameters:
  • delays (np.ndarray, optional) – Explicit integer delay lengths in samples. If omitted, N coprime delays are sampled (pyFDN.sample_delay_lengths()).

  • N (int, optional) – Number of delay lines when delays is omitted.

  • rt (float, (rt_dc, rt_nyquist), or None) – Reverberation time in seconds. None builds a lossless FDN.

  • matrix ({"orthogonal", "random"}) – Feedback-matrix parametrization.

  • feedback (np.ndarray, optional) – Initial (N, N) feedback matrix; defaults to a random SO(N) matrix.

  • input_gain (np.ndarray, optional) – B ((N, n_in)) and C ((n_out, N)); default ones / sqrt(N).

  • output_gain (np.ndarray, optional) – B ((N, n_in)) and C ((n_out, N)); default ones / sqrt(N).

  • direct (float or np.ndarray) – Direct path D; a scalar fills (n_out, n_in).

  • trainable (Trainable, optional) – Trainable parameter groups (default Trainable).

  • fs (see trainable_from_build().)

  • nfft (see trainable_from_build().)

  • output (see trainable_from_build().)

  • device (see trainable_from_build().)

  • dtype (see trainable_from_build().)

  • rng (np.random.Generator, int, or None) – Seed for the sampled delays / default feedback matrix.

Return type:

flamo.processor.system.Shell