Skip to main content
pyFDN Python versions License Test coverage

Documentation | Examples | Report a bug

Overview

pyFDN provides building blocks for designing, simulating, and analysing Feedback Delay Networks (FDNs). The package focuses on reusable, tested helper functions that simplify typical FDN workflows such as creating orthogonal feedback matrices, designing loop filters, and inspecting pole locations. Using flamo as a dependency, pyFDN allows modular design of advanced FDN structure with DSP operations in time and frequency domain.

The pyFDN tutorial provides an introduction to the package.

The source code is MIT-licensed. Small packaged tutorial resources retain the separate terms recorded in src/pyFDN/resources/ATTRIBUTION.md; in particular, the Pori concert-hall impulse response is limited to noncommercial use.

Highlights

  • Matrix polynomial helpers for evaluating, differentiating, and convolving FIR/IIR blocks.

  • Loop analysis utilities including pole boundary estimation and curve bounding checks.

  • Acoustic absorption design tools that translate RT targets into one-pole loop filters.

  • Echo density (Abel & Huang 2006) for analysing reverberation and mixing time.

  • Random orthogonal matrix generation to prototype energy-preserving feedback networks.

Installation

Install the current release from PyPI:

pip install pyFDN

For local development, create a virtual environment and install the package in editable mode together with the optional tooling:

python -m venv .venv
source .venv/bin/activate
pip install -e .

Quick start

All main functions are accessible directly from the top-level pyFDN namespace:

import numpy as np
import pyFDN

fs = 48_000
delays = np.array([331, 347, 359, 373], dtype=int)

# energy-preserving feedback matrix
feedback = pyFDN.random_orthogonal(len(delays))

# one-pole absorption filters targeting RT of 1.2 s at DC and 0.9 s at Nyquist
absorption = pyFDN.decay_to_one_pole(1.2, 0.9, delays, fs)

# convert delay state-space to standard state-space (A_ss, b, c, d)
A_ss, b, c, d = pyFDN.dss_to_ss(delays, feedback)

Alternatively, import specific functions directly:

from pyFDN import decay_to_one_pole, lin_to_db, random_orthogonal

feedback = random_orthogonal(4)
absorption = decay_to_one_pole(1.2, 0.9, [100, 150, 200, 250], 48_000)

Development

Run the test suite (the configuration mirrors CI and emits coverage details):

tox -e py311

Or, inside an activated virtual environment:

pytest --cov=src/pyFDN --cov-report=term-missing

For linting and packaging helpers see Makefile (make lint/make docs) and tox.ini for multi-environment testing.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyfdn-0.4.2.tar.gz (7.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyfdn-0.4.2-py3-none-any.whl (3.3 MB view details)

Uploaded Python 3

File details

Details for the file pyfdn-0.4.2.tar.gz.

File metadata

  • Download URL: pyfdn-0.4.2.tar.gz
  • Upload date:
  • Size: 7.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyfdn-0.4.2.tar.gz
Algorithm Hash digest
SHA256 9a2a4cec21c52fcb2f8b0a3d57c1255755ecde629e65c64fa62a96309fcf1b68
MD5 02bfb87a9ba48ac1d4b625ba941e2796
BLAKE2b-256 370625a8c36ef83970a8822c2907d753cb0f15032055ac3897a2e66ae6e7c9b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfdn-0.4.2.tar.gz:

Publisher: release.yml on artificial-audio/pyFDN

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyfdn-0.4.2-py3-none-any.whl.

File metadata

  • Download URL: pyfdn-0.4.2-py3-none-any.whl
  • Upload date:
  • Size: 3.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyfdn-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 229db3842c06985e1fe57a9bd69beb7f7a30bb70bc9987a69d966b33ffdeebc8
MD5 6deb126b591391a96f8a76e701e99d03
BLAKE2b-256 a0a407b21fd2cb7a0319a2aa5beaf713c048445a63c61ed986cbc84ab45bb4fc

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfdn-0.4.2-py3-none-any.whl:

Publisher: release.yml on artificial-audio/pyFDN

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.4.2 This release

2 files

0.4.1

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page