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
Ais a random orthogonal matrix. In-loop decay is realised as per-delay first-order shelving absorption filters matchingrtat DC andrt_nyquistat Nyquist; passrt=Nonefor 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 fromdelayswhen 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 whendelaysis 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, orrandom.input_scale (
float) – Scalar applied toB.output_scale (
float) – Scalar applied toC.direct_gain (
float|None) – Constant direct gain, orNonefor randomD.rt (
float|None) – Reverberation time in seconds at DC, orNonefor a lossless FDN with no in-loop absorption filters.rt_nyquist (
float|None) – Reverberation time in seconds at Nyquist. Defaults tort(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 lengthnum_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 lengthnum_outputs. Defaults topost_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:
- Returns:
A complete
FDNBuild.