Skip to main content
Ctrl+K
pyFDN - Home pyFDN - Home
  • Overview
  • Installation
  • Usage
  • Examples Gallery
  • API Reference
    • pyFDN
    • Contributing
    • Credits
    • History
  • GitHub
  • Overview
  • Installation
  • Usage
  • Examples Gallery
  • API Reference
  • pyFDN
  • Contributing
  • Credits
  • History
  • GitHub
  • API Reference
  • pyFDN.fdn_build_gallery

pyFDN.fdn_build_gallery#

pyFDN.fdn_build_gallery(N=None, *, fs=48000.0, delays=None, delay_range=(400, 1200), sort_delays=False, num_inputs=1, num_outputs=1, io_type='normalized', input_scale=1.0, output_scale=1.0, direct_gain=0.0, rt=2.0, rt_nyquist=None, rt_crossover=None, post_eq_db_dc=None, post_eq_db_nyquist=None, post_eq_crossover=None, rng=None)[source]#

Build a complete FDN from a delay range, a reverberation time, and an EQ.

The feedback matrix A is a random orthogonal matrix. In-loop decay is realised as per-delay first-order shelving absorption filters matching rt at DC and rt_nyquist at Nyquist; pass rt=None for a lossless FDN (filters=None). An optional per-output first-order shelving post EQ is specified directly in decibels at DC and Nyquist.

Delays and I/O matrices use a local numpy.random.Generator; passing an integer or generator makes the build reproducible without mutating NumPy’s global random state.

Parameters:
  • N (int | None) – Number of delay lines. Inferred from delays when given.

  • fs (float) – Sample rate in Hz.

  • delays (ndarray | None) – Optional explicit delay lengths in samples.

  • delay_range (tuple[int, int]) – Half-open random delay range when delays is omitted.

  • sort_delays (bool) – Sort randomly generated or supplied delays.

  • num_inputs (int) – Number of input channels.

  • num_outputs (int) – Number of output channels.

  • io_type (str) – I/O matrix style: ones, normalized, identity, or random.

  • input_scale (float) – Scalar applied to B.

  • output_scale (float) – Scalar applied to C.

  • direct_gain (float | None) – Constant direct gain, or None for random D.

  • rt (float | None) – Reverberation time in seconds at DC, or None for a lossless FDN with no in-loop absorption filters.

  • rt_nyquist (float | None) – Reverberation time in seconds at Nyquist. Defaults to rt (frequency-flat decay).

  • rt_crossover (float | None) – Shelf crossover for the absorption filters in Hz.

  • post_eq_db_dc (Union[_Buffer, _SupportsArray[dtype[Any]], _NestedSequence[_SupportsArray[dtype[Any]]], complex, bytes, str, _NestedSequence[complex | bytes | str], None]) – Post-EQ gain in dB at DC, scalar or length num_outputs. Setting either post-EQ argument enables a per-output output filter.

  • post_eq_db_nyquist (Union[_Buffer, _SupportsArray[dtype[Any]], _NestedSequence[_SupportsArray[dtype[Any]]], complex, bytes, str, _NestedSequence[complex | bytes | str], None]) – Post-EQ gain in dB at Nyquist, scalar or length num_outputs. Defaults to post_eq_db_dc (flat gain).

  • post_eq_crossover (float | None) – Shelf crossover for the post EQ in Hz.

  • rng (Generator | int | None) – Local NumPy generator or integer seed.

Return type:

FDNBuild

Returns:

A complete FDNBuild.

previous

pyFDN.filter_matrix_gallery

next

pyFDN.sample_delay_lengths

On this page
  • fdn_build_gallery()

© Copyright 2026, Artificial Audio Lab.

Created using Sphinx 9.0.4.

Built with the PyData Sphinx Theme 0.19.0.