# PyDSM

> Part of [LISQM](https://zhenxianli.github.io/LISQM/) (List of Implementations of Sound Quality Metrics), a list of open-source implementations of psychoacoustic metrics. Data as of 2026-10-28. Web page: https://zhenxianli.github.io/LISQM/projects/pydsm.html

Python toolbox for the design and simulation of delta-sigma modulators. It contains a helper module, `pydsm.iso226`, with ISO 226:2003 equal-loudness contours.

- **Repository:** https://github.com/sergiocallegari/PyDSM
- **Documentation:** https://pythonhosted.org/pydsm/pydsm.iso226.html
- **Language:** Python
- **Kind:** Library/Toolbox (Functions to call from your own code: a Python package, a MATLAB toolbox, or a C, C++, C#, Rust or Julia library.)
- **Group:** established (Described in a publication, used by others, or written by the authors of the model, with more than a year of history.)
- **Licence:** GPL-3.0-or-later
- **Package:** PyPI `pydsm` (https://pypi.org/project/pydsm/)
- **Install:** `pip install pydsm`
- **Latest release:** 0.15.2 (2025-08)
- **Last commit:** 2025-08-22 (inactive since 2025-08)
- **GitHub stars:** 22
- **Maintainers:** Sergio Callegari
- **AI assistance:** not stated
- **How to cite:** The README asks users to cite two papers by Callegari and Bizzarri on the design of ΔΣ modulators (the journal versions). Name the version or commit you used.
- **Entry checked:** 2026-10-06

## What it implements

| Metric | Edition | Functions | Status | Validation (as stated) | Notes |
|---|---|---|---|---|---|
| [Equal-loudness contours](https://zhenxianli.github.io/LISQM/metrics/equal-loudness-contours.html) | [ISO 226:2003](https://www.iso.org/standard/34222.html) (tabled and interpolated contours; optional 20 kHz extension) | `pydsm.iso226` | available | not stated | — |

## How it was validated

As reported by the project; LISQM has not run the code. Two implementations that agree can still share the same error.

The project does not say how any of these were validated.

## Notes

- The `pydsm.iso226` module was added in August 2013 and cites Jeff Tackett's 2005 MATLAB ISO 226 code. Its tables can optionally be extended with a data point at 20 kHz.
- A standalone extraction of the module, [jacobbaylesssmc/iso226](https://github.com/jacobbaylesssmc/iso226) (GPL-3.0, two commits on 2019-07-09), also exists.

## Before you rely on it

- ISO 226:2003 was withdrawn in 2023 and replaced by ISO 226:2023; the module follows the 2003 edition.

## Sources

- https://github.com/sergiocallegari/PyDSM
- https://github.com/sergiocallegari/PyDSM/blob/main/README.md
- https://github.com/sergiocallegari/PyDSM/blob/main/src/pydsm/iso226.py
- https://pypi.org/project/pydsm/
- https://github.com/jacobbaylesssmc/iso226
