# pySQAT

> 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/pysqat.html

Python port of the MATLAB toolbox SQAT (README title "SQAT4PY") with a PySide6 graphical interface. Covers ISO 532-1 loudness, DIN 45692 sharpness, Daniel & Weber roughness, Osses fluctuation strength, Aures tonality, three psychoacoustic annoyance models and EPNL; its ECMA-418-2 functions call sottek-hearing-model.

- **Repository:** https://github.com/PALILA-TUDelft/pySQAT
- **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:** developing (Public for more than a year, but without a publication or documented use by others: research, teaching or personal code.)
- **Licence:** none — No licence file at the repository root. The bundled copy of SQAT v1.3 (MATLAB, used as the validation reference) carries SQAT's CC-BY-NC-4.0 licence.
- **Latest release:** no release
- **Last commit:** 2026-06-27 (active)
- **GitHub stars:** 6
- **Maintainers:** Gerard Mendoza Ferrandis
- **AI assistance:** not stated
- **How to cite:** The project does not say how to cite it. Cite the repository with the version or commit you used.
- **Entry checked:** 2026-10-19

## What it implements

| Metric | Edition | Functions | Status | Validation (as stated) | Notes |
|---|---|---|---|---|---|
| [Zwicker loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-zwicker.html) | [ISO 532-1:2017](https://www.iso.org/standard/63077.html) | `Loudness_ISO532_1` | available | compared with SQAT (its source) | — |
| [Sottek Hearing Model loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-ecma-418-2.html) | [ECMA-418-2:2025 (4th ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf) | `Loudness_ECMA418_2` | available | compared with SQAT (also ported from refmap-psychoacoustics) | — |
| [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html) | [DIN 45692:2009](https://www.dinmedia.de/en/standard/din-45692/117635111) | `Sharpness_DIN45692`, `Sharpness_DIN45692_from_loudness` | available | compared with SQAT (its source) | — |
| [Roughness (Daniel & Weber)](https://zhenxianli.github.io/LISQM/metrics/roughness-daniel-weber.html) | [Daniel & Weber (1997)](https://zhenxianli.github.io/LISQM/standards.html#ref-daniel-weber-1997) | `Roughness_Daniel1997` | available | compared with SQAT (its source) | Follows SQAT v1.3, before SQAT's September 2026 rewrite. |
| [Sottek Hearing Model roughness](https://zhenxianli.github.io/LISQM/metrics/roughness-ecma-418-2.html) | [ECMA-418-2:2025 (4th ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf) | `Roughness_ECMA418_2` | available | compared with SQAT (also ported from refmap-psychoacoustics) | — |
| [Fluctuation strength (Osses et al.)](https://zhenxianli.github.io/LISQM/metrics/fluctuation-strength-osses.html) | [Osses et al. (2016)](https://doi.org/10.1121/2.0000410) | `FluctuationStrength_Osses2016` | available | compared with SQAT (its source) | — |
| [Tonality (Aures)](https://zhenxianli.github.io/LISQM/metrics/tonality-aures.html) | [Aures (1985b)](https://zhenxianli.github.io/LISQM/standards.html#ref-aures-1985-euphony) | `Tonality_Aures1985` | available | compared with SQAT (its source) | A June 2026 commit corrected its calibration; it predates SQAT's September 2026 fixes. |
| [Sottek Hearing Model tonality](https://zhenxianli.github.io/LISQM/metrics/tonality-ecma-418-2.html) | [ECMA-418-2:2025 (4th ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf) | `Tonality_ECMA418_2` | available | compared with SQAT (also ported from refmap-psychoacoustics) | — |
| [Psychoacoustic annoyance](https://zhenxianli.github.io/LISQM/metrics/psychoacoustic-annoyance.html) | [Di et al. (2016)](https://doi.org/10.1016/j.apacoust.2015.12.006) | `PsychoacousticAnnoyance_Di2016` | available | compared with SQAT (its source) | — |
| [Psychoacoustic annoyance](https://zhenxianli.github.io/LISQM/metrics/psychoacoustic-annoyance.html) | [More (2010)](https://docs.lib.purdue.edu/dissertations/AAI3453255) | `PsychoacousticAnnoyance_More2010` | available | compared with SQAT (its source) | — |
| [Psychoacoustic annoyance](https://zhenxianli.github.io/LISQM/metrics/psychoacoustic-annoyance.html) | [Zwicker & Fastl (1999)](https://doi.org/10.1007/978-3-662-09562-1) | `PsychoacousticAnnoyance_Zwicker1999` | available | compared with SQAT (its source) | — |
| [Perceived noise level and EPNL](https://zhenxianli.github.io/LISQM/metrics/epnl.html) | [14 CFR Part 36](https://www.ecfr.gov/current/title-14/chapter-I/subchapter-C/part-36) | `EPNL_FAR_Part36` | available | compared with SQAT (its source) | — |

## 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.

- [Zwicker loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-zwicker.html), ISO 532-1:2017; [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html), DIN 45692:2009; [Roughness (Daniel & Weber)](https://zhenxianli.github.io/LISQM/metrics/roughness-daniel-weber.html), Daniel & Weber (1997); [Fluctuation strength (Osses et al.)](https://zhenxianli.github.io/LISQM/metrics/fluctuation-strength-osses.html), Osses et al. (2016); [Tonality (Aures)](https://zhenxianli.github.io/LISQM/metrics/tonality-aures.html), Aures (1985b); [Psychoacoustic annoyance](https://zhenxianli.github.io/LISQM/metrics/psychoacoustic-annoyance.html), Di et al. (2016); [Psychoacoustic annoyance](https://zhenxianli.github.io/LISQM/metrics/psychoacoustic-annoyance.html), More (2010); [Psychoacoustic annoyance](https://zhenxianli.github.io/LISQM/metrics/psychoacoustic-annoyance.html), Zwicker & Fastl (1999); [Perceived noise level and EPNL](https://zhenxianli.github.io/LISQM/metrics/epnl.html), 14 CFR Part 36: compared with **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (its source)
  - Ported or adapted from **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**. It was compared with the code it was ported from, which checks the port only.
  - Compared with SQAT v1.3, run in MATLAB, by `validation/FINAL_VAL.py`; the generated reports are not committed.
- [Sottek Hearing Model loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-ecma-418-2.html), ECMA-418-2:2025 (4th ed.); [Sottek Hearing Model roughness](https://zhenxianli.github.io/LISQM/metrics/roughness-ecma-418-2.html), ECMA-418-2:2025 (4th ed.); [Sottek Hearing Model tonality](https://zhenxianli.github.io/LISQM/metrics/tonality-ecma-418-2.html), ECMA-418-2:2025 (4th ed.): compared with **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (also ported from [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html))
  - Code ported from the same source is expected to agree, so that comparison is not an independent check.
  - Compared by `validation/FINAL_VAL.py` with the bundled SQAT v1.3 MATLAB code, which follows ECMA-418-2:2024 (3rd edition), so the comparison crosses editions.

## Notes

- Developed since May 2025 under the PALILA-TUDelft GitHub organisation; no release or tag yet.
- Its PySide6 interface, `main_UI.py`, dates from January 2026. The graphical interface that SQAT added in v2.0 follows its layout, as the header of SQAT's `SQAT_GUI.m` says.

## Before you rely on it

- Without a licence, reuse rights are unclear, and the bundled MATLAB code is licensed for non-commercial use only.
- The ports follow SQAT v1.3 and do not include the 2026 fixes to ISO 532-1 time-varying loudness, Daniel & Weber roughness and Aures tonality that SQAT released in v2.0.

## Sources

- https://github.com/PALILA-TUDelft/pySQAT/blob/main/README.md
- https://github.com/PALILA-TUDelft/pySQAT/tree/main/validation
- https://github.com/PALILA-TUDelft/pySQAT/blob/main/validation/FINAL_VAL.py
- https://github.com/PALILA-TUDelft/pySQAT/issues/1
- https://github.com/PALILA-TUDelft/pySQAT/blob/main/main_UI.py
- https://github.com/PALILA-TUDelft/pySQAT/blob/main/original_matlab/citation.cff
- https://github.com/ggrecow/SQAT/blob/v2.0/gui/SQAT_GUI.m
