Examples Gallery#
Rendered Marimo notebooks demonstrating pyFDN. The gallery is generated
automatically from every example_*.py file under examples/.
Getting Started#
Hands-on walk-through of the FDN knobs - delays, feedback matrix, in/out gains and decay - assembled as a delay state space and simulated with pyFDN.process_fdn, the pure-NumPy time-domain path. Every step has experiments to try. |
|
Explore pyFDN’s catalog of feedback matrices and complete FDN systems while checking their lossless and allpass properties. |
|
Hands-on walk-through of fitting an FDN to a measured room impulse response by gradient descent - a generic 1 s reverberator in, decay and output EQ trained out - with the objective, the parametrization and the runtime each a switch you can turn. Every step has experiments to try. |
|
Build a basic FLAMO FDN, inspect its response, and process a dry audio signal through it. |
Feedback Matrices#
Compare three feedback-path topologies to show how delay feedback matrices accelerate echo-density buildup. |
|
Follow a geodesic between two orthogonal feedback matrices and listen to representative interpolated FDNs. |
|
Fit an orthogonal matrix whose element magnitudes approximate a non-negative target matrix despite unknown signs. |
|
Build an FDN with a lossless FIR scattering matrix and verify its time-domain and modal responses. |
|
Compare dense, velvet-noise, elemental, and static feedback matrices by their echo-density buildup. |
Absorption & Decay#
Design per-delay graphic-EQ absorption filters and confirm that the rendered FDN follows a target frequency-dependent reverberation time. |
|
Estimate octave-band decay and level from a measured room response, then design an FDN that matches both. |
|
Contrast homogeneous modal decay with a rotated absorption design that spreads reverberation times across modes. |
|
Estimate two decay slopes per octave from a measured multi-room response and resynthesize them with parallel FDNs. |
Analysis & Verification#
Measure how a velvet-noise scattering feedback matrix decorrelates the input-output paths of an FDN. |
|
Visualize how delay count and delay length trade computational cost against modal and echo density. |
|
Compute and visualize FDN mode shapes from the left and right eigenvectors of the loop polynomial. |
|
Bound the poles of an FDN with frequency-dependent absorption using loop-transfer singular values. |
|
Analyze the pole-angle and residue distributions of random FDNs and separate modal drive from undriven residue. |
|
Render the same paraunitary FDN with GEQ absorption in two independent engines and verify sample-accurate agreement. |
Optimization#
Load optimized colorless FDN builds, add a chosen decay time, and compare their magnitude responses and impulse responses. |
|
Optimize an FDN for a flat lossless magnitude response, extract its build, and add decay for listening. |
Allpass FDNs#
Demonstrate an FDN that is allpass for one delay configuration but loses that property when its delays change. |
|
Complete the input, output, and direct-path coefficients that turn a given feedback matrix into a uniallpass FDN. |
|
Embed a homogeneous MIMO allpass FDN inside a larger recursive delay network with stereo output. |
|
Recreate Gardner’s SISO reverberator by iteratively nesting feedforward and feedback allpass sections. |
|
Construct and verify a multi-input, multi-output homogeneous allpass FDN from delay-line gains and an orthogonal mixing matrix. |
|
Build a single-input, single-output homogeneous allpass FDN and validate its allpass response. |
|
Construct Poletti’s homogeneous allpass FDN topology and inspect its impulse and frequency responses. |
|
Place a Schroeder allpass cascade inside a recursive loop and examine the resulting reverberator. |
|
Build the classic Schroeder series-allpass reverberator and verify that it is uniallpass – allpass whatever the delays. |
Special FDNs#
Model two rooms with different decay characteristics and join their delay networks through an acoustic coupling matrix. |
|
Reverberation enhancement system built with the pyFDN.td graph: an FDN inside an acoustic feedback loop, with a time-varying feedback matrix raising the stable gain before feedback. |
|
Derive a scattering delay network from room geometry and wall absorption, then render its impulse response with FLAMO. |
|
Process music through an FDN whose orthogonal feedback matrix changes over time at selectable modulation rates. |
Representations#
Convert delay state-space FDN parameters into a conventional state-space model and verify matching impulse responses. |
|
Convert a delay state-space FDN into a matrix transfer function and verify the result in the time domain. |
|
Compare three pole-residue solvers by reconstructing an FDN impulse response from its modal decomposition. |
|
Convert a FLAMO feedback model with an SOS loop filter into poles and residues, including iterative pole refinement. |
Export & Deployment#
Compile a pyFDN design through FLAMO and adac into certified FAUST source for browser, offline, and plugin deployment. |
Effects#
Drop five nonlinear and pitch-shifting operators into the feedback loop of an FDN and hear how each one turns a plain reverb into a shimmer effect. |
All notebooks can also be browsed in the repository’s examples directory.