A List of Open-Source Implementations of Psychoacoustic and Sound Quality Metrics
Find an open-source method to calculate psychoacoustic metrics such as loudness, sharpness, roughness and tonality, one that you can trust and that best fits your coding environment, whether Python, MATLAB, C/C++, Rust, Julia or another language. Each implementation is listed under the edition of the standard or model it follows, with the validation it reports, so that you can judge whether its results are credible. The chart below shows which projects implement which edition.
Editions and implementations
Each standard edition or model paper is placed in the column of the year it appeared, with the projects that implement it below. Projects in bold and other established projects come first, then newly released, developing and legacy ones. Hover over a name for details, or open a metric’s page for its function names and validation.
ISO 532-1:2017 current edition ISO 226:2003 earlier or other edition in development draft or new work item years since the metric’s first edition
Language: py Python m MATLAB or Octave c C c++ C++ c# C# rs Rust jl Julia pd Pure Data
Bold name: widely used or a very good implementation · no marker: established · new newly released, first released less than about a year ago and not yet seen to be widely used · dev developing: public for more than a year, without a publication or documented use by others · grey name: legacy, archived or no commit for three years or more · each edition shows at most 4 projects, the most established first; + more shows the rest
unreleased merged, not in a release yet · PR open pull request · hover over a name for its languages, version and status
Others. PsychoBox (via MoSQITo), Soundscapy (via MoSQITo), and ZwickerLoudnessAudio.jl (via ZwickerLoudness.jl) call one of the projects above instead of computing the metrics themselves, so they are not in the timeline. See Others on the projects page.
Gaps
No available open-source implementation of the current edition has been found for:
- Roughness, DIN 38455
- Tonal components and tone adjustment (DIN 45681)
- Audibility of tones in noise (ISO/TS 20065)
For the following metrics, the only released implementations of the current edition come from newly released projects, not yet seen to be widely used:
- Moore–Glasberg loudness of stationary sounds (ISO 532-2, ANSI S3.4)
- Fluctuation strength from the Sottek Hearing Model (ECMA-418-2)
- Tone-to-noise ratio and prominence ratio (ECMA-418-1)
- Tonal audibility in environmental noise (ISO 1996-2)
- Tonal audibility of wind turbine noise (IEC 61400-11)
- Prominence of impulsive sounds (ISO/PAS 1996-3, NT ACOU 112)
- Equal-loudness-level contours (ISO 226)
The Languages page shows which metrics can be computed in Python, MATLAB, C and other languages.
Recent updates
- 27 October 2026: Version 0.5.10: rota-order added
- 19 October 2026: Version 0.5.9: SQAT's interface follows pySQAT's layout
- 19 October 2026: Version 0.5.8: SQAT's graphical interface
- 17 October 2026: Version 0.5.7: SQAT v2.0 and ecma418-torch
- 14 October 2026: Version 0.5.6: the maps agree
Contribute
If an implementation is missing or a fact is wrong, open an issue, send a pull request or leave a message.