# LISQM: List of Implementations of Sound Quality Metrics > A list of open-source implementations of psychoacoustic metrics, also called sound quality (SQ) metrics: loudness, sharpness, roughness, fluctuation strength, tonality, impulsiveness and psychoacoustic annoyance. Each implementation is listed under the standard edition or model it follows. All programming languages. Data as of 2026-10-28. 22 metrics, 41 projects, languages: C, C#, C++, Julia, MATLAB, Octave, Pure Data, Python, Rust. Each implementation is tied to the standard edition or model paper it follows, with its validation evidence as stated by the project. Repository and package metadata are refreshed monthly. Implementations are listed with established projects first, SQAT and MoSQITo (widely used), and sottek-hearing-model (a very good implementation) at the top and in bold. Projects marked (newly released) were first released less than about a year ago and are not yet seen to be widely used in the community; projects marked (legacy) are archived or have had no commit for three years or more. Developed by Zhenxian LI with assistance from Claude Code. ## Loudness - [Zwicker loudness (ISO 532-1, DIN 45631)](https://zhenxianli.github.io/LISQM/metrics/loudness-zwicker.md): current edition ISO 532-1:2017; implementations: SQAT, MoSQITo, AARAE, MetaSona (newly released), iso532-1-rs (newly released), Kirin Hypha (newly released), Mosqito.NET (newly released), phonometry (newly released), SoundPalette (newly released), ZwickerLoudness.jl (newly released), pySQAT (developing), PsychoacousticParametersMeasurer (legacy) - [Moore–Glasberg loudness of stationary sounds (ISO 532-2, ANSI S3.4)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg.md): current edition ISO 532-2:2017; implementations: phonometry (newly released) - [Time-varying loudness, Moore–Glasberg–Schlittenlacher (ISO 532-3)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.md): current edition ISO 532-3:2023; implementations: iso532-3 (tv2018.m), phonometry (newly released) - [Loudness from the Sottek Hearing Model (ECMA-418-2)](https://zhenxianli.github.io/LISQM/metrics/loudness-ecma-418-2.md): current edition ECMA-418-2:2025 (4th ed.); implementations: SQAT, sottek-hearing-model, refmap-psychoacoustics, MetaSona (newly released), phonometry (newly released) ## Sharpness - [Sharpness (DIN 45692, Aures, von Bismarck)](https://zhenxianli.github.io/LISQM/metrics/sharpness.md): current edition DIN 45692:2009; implementations: SQAT, MoSQITo, refmap-psychoacoustics, MetaSona (newly released), Kirin Hypha (newly released), Mosqito.NET (newly released), phonometry (newly released), PsychoacousticMetrics.jl (newly released), SoundPalette (newly released), pySQAT (developing), PsychoacousticParametersMeasurer (legacy) ## Roughness - [Roughness, Daniel & Weber model](https://zhenxianli.github.io/LISQM/metrics/roughness-daniel-weber.md): current edition Daniel & Weber (1997); implementations: SQAT, MoSQITo, AARAE, ITA-Toolbox, MetaSona (newly released), Mosqito.NET (newly released), PsychoacousticMetrics.jl (newly released), SoundPalette (newly released), pySQAT (developing), PsySound3 (legacy) - [Roughness from the Sottek Hearing Model (ECMA-418-2)](https://zhenxianli.github.io/LISQM/metrics/roughness-ecma-418-2.md): current edition ECMA-418-2:2025 (4th ed.); implementations: SQAT, sottek-hearing-model, refmap-psychoacoustics, MetaSona (newly released), ecma418-torch (newly released), phonometry (newly released) - [Roughness, DIN 38455](https://zhenxianli.github.io/LISQM/metrics/roughness-din-38455.md): current edition DIN 38455:2024; implementations: none found ## Fluctuation strength - [Fluctuation strength, Osses et al. model and Fastl & Zwicker formula](https://zhenxianli.github.io/LISQM/metrics/fluctuation-strength-osses.md): current edition Osses et al. (2016); implementations: SQAT, phonometry (newly released), PsychoacousticMetrics.jl (newly released), pySQAT (developing), fluctuation-strength-TUe (legacy) - [Fluctuation strength from the Sottek Hearing Model (ECMA-418-2)](https://zhenxianli.github.io/LISQM/metrics/fluctuation-strength-ecma-418-2.md): current edition ECMA-418-2:2025 (4th ed.); implementations: SQAT (PR), sottek-hearing-model (unreleased), ecma418-torch (newly released), phonometry (newly released) ## Tonality - [Tonality, Aures/Terhardt model](https://zhenxianli.github.io/LISQM/metrics/tonality-aures.md): current edition Aures (1985b); implementations: SQAT, MoSQITo (PR), MetaSona (newly released), pySQAT (developing) - [Tonality from the Sottek Hearing Model (ECMA-418-2)](https://zhenxianli.github.io/LISQM/metrics/tonality-ecma-418-2.md): current edition ECMA-418-2:2025 (4th ed.); implementations: SQAT, sottek-hearing-model, refmap-psychoacoustics, MetaSona (newly released), phonometry (newly released) - [Tone-to-noise ratio and prominence ratio (ECMA-418-1)](https://zhenxianli.github.io/LISQM/metrics/tone-to-noise-prominence-ratio.md): current edition ECMA-418-1:2024 (3rd ed.); implementations: phonometry (newly released), rota-order (newly released) - [Tonal components and tone adjustment (DIN 45681)](https://zhenxianli.github.io/LISQM/metrics/tonality-din-45681.md): current edition DIN 45681:2005; implementations: none found - [Audibility of tones in noise (ISO/TS 20065)](https://zhenxianli.github.io/LISQM/metrics/tonal-audibility-iso-20065.md): current edition ISO/TS 20065:2022; implementations: none found - [Tonal audibility in environmental noise (ISO 1996-2)](https://zhenxianli.github.io/LISQM/metrics/tonal-audibility-iso-1996-2.md): current edition ISO 1996-2:2017; implementations: MoSQITo (PR), phonometry (newly released) - [Tonal audibility of wind turbine noise (IEC 61400-11)](https://zhenxianli.github.io/LISQM/metrics/tonal-audibility-iec-61400-11.md): current edition IEC 61400-11:2012+AMD1:2018; implementations: phonometry (newly released) ## Impulsiveness - [Prominence of impulsive sounds (ISO/PAS 1996-3, NT ACOU 112)](https://zhenxianli.github.io/LISQM/metrics/impulsiveness.md): current edition ISO/PAS 1996-3:2022; implementations: phonometry (newly released) ## Psychoacoustic annoyance - [Psychoacoustic annoyance (Widmann, Zwicker & Fastl, More, Di et al.)](https://zhenxianli.github.io/LISQM/metrics/psychoacoustic-annoyance.md): current edition Widmann (1992), Zwicker & Fastl (1999), More (2010), and Di et al. (2016); implementations: SQAT, refmap-psychoacoustics, phonometry (newly released), PsychoacousticMetrics.jl (newly released), pySQAT (developing), PsychoacousticParametersMeasurer (legacy) ## Related quantities - [Equal-loudness-level contours (ISO 226)](https://zhenxianli.github.io/LISQM/metrics/equal-loudness-contours.md): current edition ISO 226:2023; implementations: phonometry (newly released) - [Perceived noise level, PNLT and EPNL (ICAO Annex 16, 14 CFR Part 36)](https://zhenxianli.github.io/LISQM/metrics/epnl.md): current edition ICAO Annex 16, Vol. I and 14 CFR Part 36; implementations: SQAT, phonometry (newly released), pySQAT (developing), SUAVE (legacy) - [Aural detectability of sounds in background noise](https://zhenxianli.github.io/LISQM/metrics/aural-detectability.md): current edition Fidell et al. (1974); implementations: refmap-psychoacoustics ## Projects - **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.md)**: MATLAB; established, widely used; MATLAB toolbox for sound quality analysis that bundles most psychoacoustic metrics in one place: ISO 532-1 and ECMA-418-2 loudness, DIN 45692 sharpness, Daniel & Weber and ECMA-418-2 roughness, Osses fluctuation strength, Aures and ECMA-418-2 tonality, three psychoacoustic annoyance models (Widmann's, which SQAT also offers under its common attribution to Zwicker & Fastl; More; Di et al.) and EPNL. - **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.md)**: Python; established, widely used; Python library for sound quality metrics: ISO 532-1 loudness, DIN 45692 sharpness, Daniel & Weber roughness, ECMA-418-2 hearing-model loudness (Clause 5) and roughness (2nd edition), tone-to-noise and prominence ratios, and the speech intelligibility index. - **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.md)**: Python; established, a very good implementation; Python implementation of the ECMA-418-2:2025 (4th edition) Sottek Hearing Model metrics: loudness and roughness (with binaural combination), tonality (per channel), and fluctuation strength on the main branch. - [acoustic-toolbox](https://zhenxianli.github.io/LISQM/projects/acoustic-toolbox.md): Python; established; Python acoustics library under the Université Gustave Eiffel GitHub organisation, continuing python-acoustics. - [AMT](https://zhenxianli.github.io/LISQM/projects/amt.md): MATLAB, Octave; established; MATLAB/Octave toolbox of auditory models for reproducible research. - [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.md): MATLAB, Python; established; Research code of the REFMAP project at the University of Salford, in MATLAB with Python ports. - [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.md): MATLAB; established; Audio and Acoustical Response Analysis Environment: a MATLAB environment with a graphical interface, made to support teaching and research in acoustics. - [iso532-3 (tv2018.m)](https://zhenxianli.github.io/LISQM/projects/js2251-iso532-3.md): MATLAB; established; MATLAB code by Brian C. J. Moore, Brian R. Glasberg and Josef Schlittenlacher (Cambridge Hearing Group) for the loudness of time-varying sounds: the model of Moore et al. (2016) with the revised time constants of Moore et al. (2018). - [ITA-Toolbox](https://zhenxianli.github.io/LISQM/projects/ita-toolbox.md): MATLAB; established; MATLAB toolbox for acoustic measurements and signal processing from the Institute of Technical Acoustics, RWTH Aachen University, open source since 2010. - [PSYCHO](https://zhenxianli.github.io/LISQM/projects/pd-psycho.md): Pure Data, C; established; Pure Data library of psychoacoustic objects (C externals and abstractions) from the author's research on dissonance models. - [PyDSM](https://zhenxianli.github.io/LISQM/projects/pydsm.md): Python; established; Python toolbox for the design and simulation of delta-sigma modulators. - [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.md): C, Python; newly released (not yet seen to be widely used); C library with a typed Python interface and prebuilt wheels, written to make repeated psychoacoustic analysis fast. - [ecma418-torch](https://zhenxianli.github.io/LISQM/projects/ecma418-torch.md): Python; newly released (not yet seen to be widely used); Roughness (Clause 7) and fluctuation strength (Clause 9) of ECMA-418-2:2025 (4th edition) in PyTorch, differentiable end to end, with the binaural combination of two channels. - [iso532-1-rs](https://zhenxianli.github.io/LISQM/projects/iso532-1-rs.md): Rust, C, Python; newly released (not yet seen to be widely used); Rust engine (README title "ISO532") for ISO 532-1:2017 Zwicker loudness: stationary, time-varying and a streaming interface, with a C ABI and a Python binding (PyO3/maturin). - [Kirin Hypha](https://zhenxianli.github.io/LISQM/projects/kirin-hypha.md): Rust; newly released (not yet seen to be widely used); Free PRE/POST measurement plug-in for mixing and mastering. - [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.md): C#; newly released (not yet seen to be widely used); C# (.NET 8) port of MoSQITo 1.2.1 with the same metrics: ISO 532-1 loudness, ECMA-418-2 (2nd edition) loudness and roughness, DIN 45692 sharpness, Daniel & Weber roughness, and ECMA-74 tone-to-noise and prominence ratios. - [NumpyLibforPsychoAcoustic](https://zhenxianli.github.io/LISQM/projects/numpylib-psychoacoustic.md): Python; newly released (not yet seen to be widely used); Python (NumPy) adaptation of loudness models from the Auditory Modeling Toolbox (AMT), written as a second-year student project at Mines School of Nancy: the stationary model of Moore, Glasberg & Baer (1997) and the time-varying model of Glasberg & Moore (2002). - [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.md): Python; newly released (not yet seen to be widely used); Python acoustics library (formerly PyOctaveBand) that added a large psychoacoustics module in July 2026: ISO 532-1, -2 and -3 loudness, ECMA-418-2:2025 loudness, tonality, roughness and fluctuation strength (monaural), DIN 45692 sharpness, Osses fluctuation strength, ECMA-418-1:2024 TNR/PR, tonal audibility, impulsiveness, EPNL and ISO 226:2023. - [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.md): Julia; newly released (not yet seen to be widely used); Julia package for the Zwicker family of sound-quality metrics on top of ZwickerLoudness.jl: DIN 45692:2009 sharpness (with Aures, von Bismarck and Fastl weightings), Daniel & Weber roughness, Osses et al. (2016) fluctuation strength and Widmann (1992) psychoacoustic annoyance. - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.md): Python; newly released (not yet seen to be widely used); Order analysis of noise and vibration from rotating machinery such as engines, electric motors and gearboxes. - [SoundPalette](https://zhenxianli.github.io/LISQM/projects/soundpalette.md): C++; newly released (not yet seen to be widely used); C++ tool for game audio that analyses a folder of sound effects and draws each file as a glyph in a palette, built as a static library, a command-line tool (including a lint mode for CI) and a desktop app. - [torch_amt](https://zhenxianli.github.io/LISQM/projects/torch-amt.md): Python; newly released (not yet seen to be widely used); PyTorch implementations of models from the MATLAB Auditory Modeling Toolbox (AMT), differentiable and able to run on GPU. - [ZwickerLoudness.jl](https://zhenxianli.github.io/LISQM/projects/zwickerloudness-jl.md): Julia; newly released (not yet seen to be widely used); Julia package that computes ISO 532-1:2017 Zwicker loudness from one-third-octave band levels: the stationary method (clause 5) from 28 band levels and, since v0.3.0, the time-varying method (clause 6) with N5 and N10 from a band-level time series. - [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.md): Python; developing; Python port of the MATLAB toolbox SQAT (README title "SQAT4PY") with a PySide6 graphical interface. - [LoudnessModel](https://zhenxianli.github.io/LISQM/projects/loudnessmodel.md): Python; developing; Python translation of the Cambridge MATLAB code for the TVL2018 loudness model: Moore et al. (2016) with the revised time constants of Moore et al. (2018). - [deeuu/loudness](https://zhenxianli.github.io/LISQM/projects/deeuu-loudness.md): C++, Python; legacy, no commit since 2019-08; C++ library with SWIG Python bindings for building loudness models from cascaded processing modules. - [fluctuation-strength-TUe](https://zhenxianli.github.io/LISQM/projects/fluctuation-strength-tue.md): MATLAB; legacy, no commit since 2020-01; MATLAB code of the fluctuation strength model of Osses, García & Kohlrausch (2016) (FluctuationStrength_TUe.m), with the stimuli of the paper and a demo that reproduces its figures. - [HAW loudness tool](https://zhenxianli.github.io/LISQM/projects/haw-specific-loudness.md): MATLAB; legacy, no commit since 2022-12; MATLAB tool with a graphical interface, from HAW Hamburg, that shows the specific loudness of time-varying sounds: a Moore–Glasberg front end on ERB bands with temporal processing after Glasberg & Moore (2002), Chalupper & Fastl (2002) or Baumgarte (2000). - [IoSR Matlab Toolbox](https://zhenxianli.github.io/LISQM/projects/iosr-matlab-toolbox.md): MATLAB; legacy, no commit since 2017-08; General-purpose MATLAB toolbox from the Institute of Sound Recording (University of Surrey) for auditory modelling, signal processing, source separation, statistics and plotting. - [MoSQITo-FDP](https://zhenxianli.github.io/LISQM/projects/mosqito-fdp.md): Python; legacy, archived; Archived Python snapshot of a MoSQITo fork made for a final-degree project. - [PsychoacousticParametersMeasurer](https://zhenxianli.github.io/LISQM/projects/psychoacoustic-parameters-measurer.md): Python; legacy, no commit since 2021-06; Python scripts, commented in Spanish, that translate psychoacoustic parameters described in Zwicker and Fastl's book: Zwicker loudness (stationary and time-varying, from third-octave levels), sharpness, roughness, fluctuation strength and psychoacoustic annoyance. - [PsySound3](https://zhenxianli.github.io/LISQM/projects/psysound3.md): MATLAB; legacy, no commit since 2015-03; MATLAB program with a graphical interface for analysing sound recordings. - [python-acoustics](https://zhenxianli.github.io/LISQM/projects/python-acoustics.md): Python; legacy, archived; General Python library for acousticians, published on PyPI as acoustics. - [SUAVE](https://zhenxianli.github.io/LISQM/projects/suave.md): Python; legacy, no commit since 2022-12; Python environment for the multi-fidelity conceptual design of aircraft ("An Aerospace Vehicle Environment"). - [Swift & Gee codes](https://zhenxianli.github.io/LISQM/projects/rapid-loudness-sharpness.md): MATLAB; legacy, no commit since 2020-01; MATLAB code by S. Hales Swift (Brigham Young University) on MATLAB File Exchange for fast Moore–Glasberg loudness: ANSI S3.4-2007 stationary loudness and Glasberg & Moore (2002) time-varying loudness, each with the sharpness of Swift & Gee (2017), which is computed from Moore–Glasberg specific loudness. - [Zhen-Ni/epnl](https://zhenxianli.github.io/LISQM/projects/zhen-ni-epnl.md): Rust; legacy, no commit since 2023-07; Small Rust crate that computes perceived noisiness (noy), perceived noise level (PNL) and tone-corrected perceived noise level (PNLT) from 24 one-third-octave band levels, citing ICAO Annex 16, Volume I, Appendix 2 in its code comments. - [zwickerloudness](https://zhenxianli.github.io/LISQM/projects/zwickerloudness-sourceforge.md): C; legacy, no commit since 2018-06; Console program in C, for BSD, Linux and Windows, that calculates the loudness of stationary sounds with Zwicker's method (ISO 532B / DIN 45631) from one-third-octave band levels. ## Others Tools that do not compute the metrics themselves: interfaces, front ends and wrappers that call one of the listed projects. They are not listed under the metrics. - [PsychoBox](https://zhenxianli.github.io/LISQM/projects/psychobox.md): Python; calls MoSQITo; Desktop application (PySide6 GUI) for playing, editing, filtering and analysing audio. - [Soundscapy](https://zhenxianli.github.io/LISQM/projects/soundscapy.md): Python; calls MoSQITo; Python library for soundscape assessment. - [ZwickerLoudnessAudio.jl](https://zhenxianli.github.io/LISQM/projects/zwickerloudnessaudio-jl.md): Julia; calls ZwickerLoudness.jl; newly released (not yet seen to be widely used); Julia front end to ZwickerLoudness.jl that computes ISO 532-1:2017 Zwicker loudness from waveforms or WAV files: stationary loudness, and since v0.3.0 time-varying loudness with N5 and N10. ## Status unknown Projects whose code could not be opened, for example because the repository needs a login. What they implement is unverified, so they are listed with what they claim and not under the metrics. - [PsyTools](https://zhenxianli.github.io/LISQM/projects/psytools.md): Python; the repository cannot be opened without a login; claims: A conference paper describes an open-source Python toolbox for standardised psychoacoustic analysis: loudness, sharpness, fluctuation strength, roughness, tonality, psychoacoustic annoyance, LAeq and LAmax, following ISO 532-1, DIN 45692 and ECMA-418, with the Zwicker model and the Sottek Hearing Model. ## Data - [index.json](https://zhenxianli.github.io/LISQM/index.json): the complete index as JSON - [references.bib](https://zhenxianli.github.io/LISQM/references.bib): every standard, model paper and software paper as BibTeX - [llms-full.txt](https://zhenxianli.github.io/LISQM/llms-full.txt): all pages in one Markdown file - [Data schema](https://github.com/ZhenxianLi/LISQM/blob/main/data/SCHEMA.md) ## Optional - [For AI agents](https://zhenxianli.github.io/LISQM/ai.md): how to retrieve, read and cite this list - [Metrics](https://zhenxianli.github.io/LISQM/metrics/index.md): every metric with its current edition - [Languages](https://zhenxianli.github.io/LISQM/languages.md): coverage and calling details by language - [Project map](https://zhenxianli.github.io/LISQM/projects/map.md): code ported or adapted from another project, use at run time, results checked against another project, and shared contributors - [Frequently asked questions](https://zhenxianli.github.io/LISQM/faq.md) - [About](https://zhenxianli.github.io/LISQM/about.md): scope, how entries are checked, definitions and data access - [Standards timeline](https://zhenxianli.github.io/LISQM/standards.md) - [Updates](https://zhenxianli.github.io/LISQM/updates.md) - [Source repository](https://github.com/ZhenxianLi/LISQM) --- # About LISQM > 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/about.html Are you looking for an open-source way to calculate psychoacoustic metrics such as loudness, sharpness, roughness and tonality? One you can trust, and that fits your coding environment, whether Python, MATLAB, C/C++, Rust, Julia or another language? LISQM lists the open-source implementations of each metric under the standard it follows, together with the validation each one reports. LISQM stands for List of Implementations of Sound Quality Metrics. LISQM does not compute anything itself; it lists the implementations and compares what they state. The listed implementations publish their source code, most under an open-source licence; a few have no licence file, or a source-available or non-commercial licence: they are tagged on the metric pages and the Languages page, and each project's page gives the details. The data of LISQM is open, but many of the standards the implementations follow are not free. ## Why I built LISQM I built LISQM out of my own frustration. I work in Python and used **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**. Unfortunately, it hasn't been updated since 2024, and some metrics I needed, like Aures tonality, were missing. I ended up calling the **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** toolbox from Python through the [MATLAB Engine API](https://zhenxianli.github.io/LISQM/languages.html#across). Only much later did I come across [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html), a newer Python port of SQAT. So I started a living list of open-source implementations of psychoacoustic and sound quality metrics, hoping to save others with the same need some time. LISQM is built from each project's own documentation and the related publications, and is renewed monthly. The judgements on the site currently rest mainly on my own experience as a user, so I would really value the community's input. Whether you use these tools, contribute to them, maintain a project, or want to share a new one you've built, I'd love to [hear from you](https://zhenxianli.github.io/LISQM/faq.html#message). Corrections, missing projects and suggestions are all welcome. I hope LISQM becomes a useful place for all of us. — Zhenxian LI ## What is included The list includes open-source code that computes a psychoacoustic metric and says which model or standard edition it follows. Quantities: loudness, sharpness, roughness, fluctuation strength, tonality, impulsiveness, psychoacoustic annoyance, and related quantities. Not included: LUFS / ITU-R BS.1770, speech intelligibility, codec quality metrics (PEAQ, PESQ, ViSQOL), psychophysics experiment software, music sensory-dissonance models, feature extractors whose loudness or sharpness follow no named psychoacoustic model, and closed-source tools. The ISO 532 reference programs (free to download, not modifiable) are described on the standards' entries. Reviewed exclusions are listed with reasons in https://github.com/ZhenxianLi/LISQM/blob/main/data/ignored.yaml. ## How entries are checked Each entry is written from the project's own README, documentation, release notes, licence file and package metadata, with links to those sources. The list records what a project claims. It does not run the code. Repository dates, releases and package versions are refreshed monthly by a GitHub Action, which also searches for new candidate projects and watches the standards bodies for new editions. A person reviews the findings before anything is added. ## Status of an implementation | Value | Meaning | |---|---| | available | In the latest release, or on the default branch of a project without releases. | | unreleased | Merged on the default branch but newer than the latest release. | | PR | Open pull request or separate branch, not merged. | ## Validation evidence Validation is recorded as each project states it. When a project says what it compared its results with (MoSQITo, SQAT, the model authors' code or commercial software), the list names it, and the project page gives the details under *How it was validated*. Two implementations that agree compute the same values, but an error they share goes unnoticed. | Value | Meaning | |---|---| | standard or paper data | Compared with test signals or values published in the standard or the model paper. | | reference code | Compared with the reference program or the model authors' own code. | | compared with another implementation | Compared with another implementation, named when the project says which. Agreement means that both compute the same values; they may still share an error. | | own tests only | Tests exist, but without external reference data. | | not stated | The project does not say how it was validated. | ## Standing of a project Each project is in one group. A project whose code could not be opened is under status unknown, one that computes nothing itself and calls another listed project is under others, and one that is archived or has had no commit for three years is legacy. Every other project keeps the standing recorded for it: established, newly released or developing. All lists follow the order established, newly released, developing, legacy, others, status unknown, so a project that is new, little used, no longer maintained or unverified is never suggested first. A few projects come before all others in every list, in bold: SQAT and MoSQITo (widely used), and sottek-hearing-model (a very good implementation). They are never listed as legacy, and neither are reference programs published with a standard. | Group | Meaning | |---|---| | established | Described in a publication, used by others, or written by the authors of the model, with more than a year of history. | | newly released | First released less than about a year ago, and not yet seen to be widely used in the community. | | developing | Public for more than a year, but without a publication or documented use by others: research, teaching or personal code. | | legacy | Archived, or no commit for three years or more. Kept for reference. The code may follow an older edition and may not run with current software. | | other | Tools that do not compute the metrics themselves: interfaces, front ends and wrappers that call one of the listed projects. | | status unknown | Projects whose code could not be opened, for example because the repository needs a login. What they implement is unverified, so they are listed with what they claim and not under the metrics. | ## Kinds of project The kind says what a project is for someone who wants to use it. Each project page names it. | Kind | Meaning | |---|---| | Library/Toolbox | Functions to call from your own code: a Python package, a MATLAB toolbox, or a C, C++, C#, Rust or Julia library. | | Research code | Code published with a study, a thesis or a student project, to run or adapt; not packaged as a library. | | Application | A program to run, with a graphical or command-line interface; no programming needed. | | Plug-in | Runs inside other software: a plug-in for an audio workstation, or a Pure Data external. | | Reference program | Code published with a standard or by the authors of the model, as the reference for it. | ## Leads not yet verified Candidates that may belong in the list but could not be checked yet. Nothing here has been confirmed. - [Genesis Loudness Toolbox](http://www.genesis-acoustics.com/index.php?page=32) (MATLAB): Free MATLAB toolbox (2010) said to cover ISO 532B / DIN 45631, ANSI S3.4-2007, Zwicker's time-varying model, Glasberg & Moore (2002) and Boullet's (2006) loudness model for impulsive sounds. An [archived copy](https://web.archive.org/web/20150306205824/http://genesis-acoustics.com/index.php?page=32) of the page (2015) says the ZIP file contains MATLAB source files, validation WAV files and a Readme with the terms of use, but the download page was not archived and the website could not be reached, so the code and its licence could not be checked. - [Salford sound quality MATLAB codes](https://acoustics.salford.ac.uk/psychoacoustics/sound-quality-making-products-sound-better/an-introduction-to-sound-quality-testing/matlab-codes/) (MATLAB): Functions named `loudness_1991` (Zwicker loudness, free or diffuse field), `sharpness_Fastl` and `roughness4`. The page describes the functions, but its "Download the MATLAB codes" item has no link, also in an [archived copy](https://web.archive.org/web/20250709072252/https://acoustics.salford.ac.uk/psychoacoustics/sound-quality-making-products-sound-better/an-introduction-to-sound-quality-testing/matlab-codes/) of July 2025, so the code could not be obtained. Not listed because they are closed source: MATLAB Audio Toolbox, HEAD acoustics ArtemiS SUITE, Simcenter Testlab, HBK BK Connect and Ansys Sound. ## Machine-readable data - [index.json](https://zhenxianli.github.io/LISQM/index.json): the whole index as JSON - [llms.txt](https://zhenxianli.github.io/LISQM/llms.txt) and [llms-full.txt](https://zhenxianli.github.io/LISQM/llms-full.txt): summaries for language models - [feed.xml](https://zhenxianli.github.io/LISQM/feed.xml): Atom feed of updates - [references.bib](https://zhenxianli.github.io/LISQM/references.bib): every standard, model paper and software paper, as BibTeX - Source data and schema: https://github.com/ZhenxianLi/LISQM/tree/main/data Visits to the website are counted with Cloudflare Web Analytics, which sets no cookies. ## Contributing and citing Corrections and new projects are welcome through issues or pull requests: https://github.com/ZhenxianLi/LISQM. To cite the list, use the CITATION.cff file in the repository, and cite the implementations you used as each project page says under *How to cite*. The standards and papers are in https://zhenxianli.github.io/LISQM/references.bib. ## Licence The data and the text (the list, the website, the README, llms.txt and index.json) are released under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/): you may copy, adapt and share them, also commercially, if you credit LISQM and its author, Zhenxian LI, link to the licence and say what you changed. The code that builds the website is released under the MIT licence (https://github.com/ZhenxianLi/LISQM/blob/main/LICENSE). The listed projects have their own licences. Developed by Zhenxian LI with assistance from Claude Code. --- # Frequently asked questions > 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/faq.html Questions, corrections and suggestions are welcome as GitHub issues: https://github.com/ZhenxianLi/LISQM/issues/new ## Which code should I use for a psychoacoustic metric? Choose by your own environment first: the language you work in and how the results will be used. The [Languages](https://zhenxianli.github.io/LISQM/languages.html) page shows which metrics can be computed from each language and how each project can be called, also from another language. The [Metrics](https://zhenxianli.github.io/LISQM/metrics/) page names the current edition of each of the 22 metrics, and each metric page lists every implementation of it, with the validation it states, the code it was ported from and the choices that change its numbers. Those widely used projects, **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (MATLAB) and **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (Python), come first in the lists, together with **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** (Python), a very good implementation, but they are not the only choice. Newer projects, not yet seen to be widely used, often check their results against MoSQITo or SQAT (9 of the 12 newly released ones do), and some are built for a particular use: [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html) is a C library written for fast, real-time analysis, with a rolling analyser for audio that arrives in chunks; [iso532-1-rs](https://zhenxianli.github.io/LISQM/projects/iso532-1-rs.html) is a Rust engine with a streaming interface and a C interface; [torch_amt](https://zhenxianli.github.io/LISQM/projects/torch-amt.html) brings the AMT loudness models to PyTorch, differentiable and able to run on GPU. [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) ports SQAT v1.3 to Python and checks each metric against that version; the graphical interface that SQAT added in v2.0 follows the layout of pySQAT's interface. Before relying on any of them, check the validation each project states and whether the fix you need is in a release or only on its main branch. ## Which metrics can I compute in Python, MATLAB or C? Metrics whose current edition has a released open-source implementation, by language: Python: 19 of 22 (8 only from newly released projects); MATLAB/Octave: 12 of 22; C/C++: 7 of 22 (7 only from newly released projects); Rust: 2 of 22 (2 only from newly released projects); Julia: 5 of 22 (5 only from newly released projects). The [Languages](https://zhenxianli.github.io/LISQM/languages.html) page lists them, and explains how each project can be used from another language, for example a MATLAB toolbox from Python through the MATLAB Engine API. ## Why does it matter which edition a tool implements? Psychoacoustic standards change between editions. ECMA-418-2, for example, has had four editions since 2020 that changed the hearing model, roughness and loudness, and all three parts of ISO 532 are being revised. Two tools that both claim to implement a standard can therefore give different values for the same sound. Liu et al. (2026, Acoustics Australia, doi:10.1007/s40857-026-00393-3) compared four tools and found differences large enough to change the predictions of sound-quality models. Each metric page lists the editions and which tool follows which. ## Which metrics have no open-source implementation yet? No available open-source implementation of the current edition was found for [Roughness, DIN 38455](https://zhenxianli.github.io/LISQM/metrics/roughness-din-38455.html), [Tonal components and tone adjustment (DIN 45681)](https://zhenxianli.github.io/LISQM/metrics/tonality-din-45681.html), and [Audibility of tones in noise (ISO/TS 20065)](https://zhenxianli.github.io/LISQM/metrics/tonal-audibility-iso-20065.html). The current editions of [Moore–Glasberg loudness of stationary sounds (ISO 532-2, ANSI S3.4)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg.html), [Fluctuation strength from the Sottek Hearing Model (ECMA-418-2)](https://zhenxianli.github.io/LISQM/metrics/fluctuation-strength-ecma-418-2.html), [Tone-to-noise ratio and prominence ratio (ECMA-418-1)](https://zhenxianli.github.io/LISQM/metrics/tone-to-noise-prominence-ratio.html), [Tonal audibility in environmental noise (ISO 1996-2)](https://zhenxianli.github.io/LISQM/metrics/tonal-audibility-iso-1996-2.html), [Tonal audibility of wind turbine noise (IEC 61400-11)](https://zhenxianli.github.io/LISQM/metrics/tonal-audibility-iec-61400-11.html), [Prominence of impulsive sounds (ISO/PAS 1996-3, NT ACOU 112)](https://zhenxianli.github.io/LISQM/metrics/impulsiveness.html), and [Equal-loudness-level contours (ISO 226)](https://zhenxianli.github.io/LISQM/metrics/equal-loudness-contours.html) have released implementations only from newly released projects, not yet seen to be widely used. ## What do established, newly released, developing and legacy mean? Every project is in one group. Established: Described in a publication, used by others, or written by the authors of the model, with more than a year of history. Newly released: First released less than about a year ago, and not yet seen to be widely used in the community. Developing: Public for more than a year, but without a publication or documented use by others: research, teaching or personal code. Legacy: Archived, or no commit for three years or more. Kept for reference. The code may follow an older edition and may not run with current software. Others: Tools that do not compute the metrics themselves: interfaces, front ends and wrappers that call one of the listed projects. Status unknown: Projects whose code could not be opened, for example because the repository needs a login. What they implement is unverified, so they are listed with what they claim and not under the metrics. Lists follow this order, so a project that is new, little used, no longer maintained or unverified is never suggested first. SQAT and MoSQITo (widely used), and sottek-hearing-model (a very good implementation) come first in every list, in bold, and they and the reference programs published with a standard are never listed as legacy. Newly released projects: [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html) (First released in September 2026), [ecma418-torch](https://zhenxianli.github.io/LISQM/projects/ecma418-torch.html) (First published on GitHub on 2026-10-11 (version 0.1.0 in its metadata); no release or PyPI package yet), [iso532-1-rs](https://zhenxianli.github.io/LISQM/projects/iso532-1-rs.html) (First version tagged in July 2026), [Kirin Hypha](https://zhenxianli.github.io/LISQM/projects/kirin-hypha.html) (First public commit in April 2026; v1.0.0 was released in May 2026), [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html) (First published on GitHub in April 2026), [NumpyLibforPsychoAcoustic](https://zhenxianli.github.io/LISQM/projects/numpylib-psychoacoustic.html) (First published on GitHub in November 2025), [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) (Its psychoacoustics module was first released in July 2026 (version 3.1.0)), [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html) (First registered in July 2026), [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) (First released in October 2026; the README calls it pre-alpha), [SoundPalette](https://zhenxianli.github.io/LISQM/projects/soundpalette.html) (Its psychoacoustic metrics were added in July 2026 (v0.5.0)), [torch_amt](https://zhenxianli.github.io/LISQM/projects/torch-amt.html) (First released in February 2026), and [ZwickerLoudness.jl](https://zhenxianli.github.io/LISQM/projects/zwickerloudness-jl.html) (First registered in February 2026). Legacy projects: [deeuu/loudness](https://zhenxianli.github.io/LISQM/projects/deeuu-loudness.html) (last commit 2019-08), [fluctuation-strength-TUe](https://zhenxianli.github.io/LISQM/projects/fluctuation-strength-tue.html) (last commit 2020-01), [HAW loudness tool](https://zhenxianli.github.io/LISQM/projects/haw-specific-loudness.html) (last commit 2022-12), [IoSR Matlab Toolbox](https://zhenxianli.github.io/LISQM/projects/iosr-matlab-toolbox.html) (last commit 2017-08), [MoSQITo-FDP](https://zhenxianli.github.io/LISQM/projects/mosqito-fdp.html) (archived), [PsychoacousticParametersMeasurer](https://zhenxianli.github.io/LISQM/projects/psychoacoustic-parameters-measurer.html) (last commit 2021-06), [PsySound3](https://zhenxianli.github.io/LISQM/projects/psysound3.html) (last commit 2015-03), [python-acoustics](https://zhenxianli.github.io/LISQM/projects/python-acoustics.html) (archived), [SUAVE](https://zhenxianli.github.io/LISQM/projects/suave.html) (last commit 2022-12), [Swift & Gee codes](https://zhenxianli.github.io/LISQM/projects/rapid-loudness-sharpness.html) (last commit 2020-01), [Zhen-Ni/epnl](https://zhenxianli.github.io/LISQM/projects/zhen-ni-epnl.html) (last commit 2023-07), and [zwickerloudness](https://zhenxianli.github.io/LISQM/projects/zwickerloudness-sourceforge.html) (last commit 2018-06). All groups are on the [Projects](https://zhenxianli.github.io/LISQM/projects/) page. ## How are the entries checked? From each project's own README, documentation, release notes, licence file and package metadata, with links to those sources. The list records what a project claims and does not run the code. Repository and package metadata are refreshed monthly, and a person reviews new findings. ## Can I rely on a listed implementation in a report that an authority will check? Being listed here is not a certification or an approval: LISQM records what each project states and has not run the code. For a report that an authority, a certification body or a client will check, use the edition and method that the regulation or contract names, check the implementation yourself with the test signals or reference data of that edition where it gives them, and state the version or commit you used. Each metric page lists the editions and what each project says about its validation. --- # Zwicker loudness (ISO 532-1, DIN 45631) > 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/metrics/loudness-zwicker.html **Quantity:** Loudness · **Unit:** sone, phon · **Also known as:** ISO 532-1, ISO 532B, ISO 532 method B, DIN 45631, DIN 45631/A1, Zwicker method Loudness from Zwicker's model: third-octave band levels are turned into specific loudness on the critical-band (Bark) scale and integrated. ISO 532-1:2017 specifies one procedure for stationary sounds and one for time-varying sounds (from which percentile values are taken, such as N5, the loudness exceeded 5 % of the time), and replaced method B of ISO 532:1975. The German standards DIN 45631 (stationary) and DIN 45631/A1 (time-varying) specify Zwicker's method; ISO 532-1:2017 states that its stationary method is based on DIN 45631:1991. The current edition is ISO 532-1:2017. In development: ISO/CD 532-1. Open-source implementations of it: **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (MATLAB; stationary and time-varying), **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (Python; stationary (also per segment and from a spectrum) and time-varying), [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html) (MATLAB; stationary and time-varying), [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html) (C, Python; newly released, not yet seen to be widely used; stationary and time-varying; also from 28 third-octave levels), [iso532-1-rs](https://zhenxianli.github.io/LISQM/projects/iso532-1-rs.html) (Rust, C, Python; newly released, not yet seen to be widely used; stationary, time-varying and streaming), [Kirin Hypha](https://zhenxianli.github.io/LISQM/projects/kirin-hypha.html) (Rust; newly released, not yet seen to be widely used; time-varying, per channel at 48 kHz; stored in the recorded data), [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html) (C#; newly released, not yet seen to be widely used; stationary (also per segment and from a spectrum) and time-varying), [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) (Python; newly released, not yet seen to be widely used; stationary and time-varying), [SoundPalette](https://zhenxianli.github.io/LISQM/projects/soundpalette.html) (C++; newly released, not yet seen to be widely used; time-varying, reported as N5; monaural), [ZwickerLoudness.jl](https://zhenxianli.github.io/LISQM/projects/zwickerloudness-jl.html) (Julia; newly released, not yet seen to be widely used; stationary, from 28 one-third-octave band levels), [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) (Python; developing), and [PsychoacousticParametersMeasurer](https://zhenxianli.github.io/LISQM/projects/psychoacoustic-parameters-measurer.html) (Python; legacy, no commit since 2021-06; stationary and time-varying, from third-octave levels). Implementations of earlier editions or related models: [ITA-Toolbox](https://zhenxianli.github.io/LISQM/projects/ita-toolbox.html) (MATLAB; DIN 45631/A1:2010; time-varying, with N5), [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html) (MATLAB; Chalupper & Fastl (2002); time-varying), [ITA-Toolbox](https://zhenxianli.github.io/LISQM/projects/ita-toolbox.html) (MATLAB; DIN 45631:1991; stationary; free or diffuse field), [PsySound3](https://zhenxianli.github.io/LISQM/projects/psysound3.html) (MATLAB; legacy, no commit since 2015-03; Chalupper & Fastl (2002); time-varying), [deeuu/loudness](https://zhenxianli.github.io/LISQM/projects/deeuu-loudness.html) (C++, Python; legacy, no commit since 2019-08; DIN 45631:1991; stationary only), and [zwickerloudness](https://zhenxianli.github.io/LISQM/projects/zwickerloudness-sourceforge.html) (C; legacy, no commit since 2018-06; DIN 45631:1991; stationary, from one-third-octave band levels). In China, GB/T 25982-2024 (interior noise of buses, in force since July 2025) sets loudness and sharpness limits and gives Zwicker's calculation in an informative annex. ## Editions and who implements them | Date | Edition | Status | What changed | Implemented by | |---|---|---|---|---| | 2024-11 | [ISO/CD 532-1](https://www.iso.org/standard/90809.html) | in development | Second edition at committee-draft stage since November 2024. | — | | 2017-06 | [ISO 532-1:2017](https://www.iso.org/standard/63077.html) | current; Under revision; the 2nd edition has been at committee-draft stage since 2024-11-01. | Stationary and time-varying procedures; Annex A reference program, Annex B test signals. | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**, [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html), [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html), [iso532-1-rs](https://zhenxianli.github.io/LISQM/projects/iso532-1-rs.html), [Kirin Hypha](https://zhenxianli.github.io/LISQM/projects/kirin-hypha.html), [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html), [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html), [SoundPalette](https://zhenxianli.github.io/LISQM/projects/soundpalette.html), [ZwickerLoudness.jl](https://zhenxianli.github.io/LISQM/projects/zwickerloudness-jl.html), [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html), [PsychoacousticParametersMeasurer](https://zhenxianli.github.io/LISQM/projects/psychoacoustic-parameters-measurer.html) | | 2010-03 | [DIN 45631/A1:2010](https://www.dinmedia.de/en/standard/din-45631-a1/122476084) | current | Adds the procedure for time-varying sounds. | [ITA-Toolbox](https://zhenxianli.github.io/LISQM/projects/ita-toolbox.html) | | 2002 | [Chalupper & Fastl (2002)](https://www.ingentaconnect.com/contentone/dav/aaua/2002/00000088/00000003/art00009) | published | Dynamic loudness model built on Zwicker's model, also for hearing impairment (not standardised). | [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html), [PsySound3](https://zhenxianli.github.io/LISQM/projects/psysound3.html) | | 1991-03 | [DIN 45631:1991](https://www.dinmedia.de/en/standard/din-45631/1666531) | current | Stationary sounds. | [ITA-Toolbox](https://zhenxianli.github.io/LISQM/projects/ita-toolbox.html), [deeuu/loudness](https://zhenxianli.github.io/LISQM/projects/deeuu-loudness.html), [zwickerloudness](https://zhenxianli.github.io/LISQM/projects/zwickerloudness-sourceforge.html) | | 1975-07 | [ISO 532:1975](https://www.iso.org/standard/4603.html) | withdrawn | Method B (Zwicker) for stationary sounds, from third-octave levels. | — | ## Project map The lines of the project map for Zwicker loudness only, between the projects listed for it (the whole map: https://zhenxianli.github.io/LISQM/projects/map.md). Agreement between a project and the code it was ported or adapted from only checks the port. ### Ported or adapted from another project - From [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html): **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (ISO 532-1:2017) - From BASIC program of DIN 45631 (Zwicker et al., 1991): **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (ISO 532-1:2017); [ITA-Toolbox](https://zhenxianli.github.io/LISQM/projects/ita-toolbox.html) (DIN 45631:1991); [deeuu/loudness](https://zhenxianli.github.io/LISQM/projects/deeuu-loudness.html) (DIN 45631:1991); [zwickerloudness](https://zhenxianli.github.io/LISQM/projects/zwickerloudness-sourceforge.html) (DIN 45631:1991) - From ISO 532-1 Annex A reference program: [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html) (ISO 532-1:2017); [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) (ISO 532-1:2017) - From **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**: [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html) (ISO 532-1:2017); [Kirin Hypha](https://zhenxianli.github.io/LISQM/projects/kirin-hypha.html) (ISO 532-1:2017); [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html) (ISO 532-1:2017); [ZwickerLoudness.jl](https://zhenxianli.github.io/LISQM/projects/zwickerloudness-jl.html) (ISO 532-1:2017); [ZwickerLoudnessAudio.jl](https://zhenxianli.github.io/LISQM/projects/zwickerloudnessaudio-jl.html) (ISO 532-1:2017) - From **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**: [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html) (ISO 532-1:2017); [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) (ISO 532-1:2017) ### The author's own code - From [PsySound3](https://zhenxianli.github.io/LISQM/projects/psysound3.html) (Densil Cabrera): [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html) (Chalupper & Fastl (2002)) ### Used at run time - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) calls **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (ISO 532-1:2017) - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) calls **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (ISO 532-1:2017) - [PsychoBox](https://zhenxianli.github.io/LISQM/projects/psychobox.html) calls **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (ISO 532-1:2017) - [Soundscapy](https://zhenxianli.github.io/LISQM/projects/soundscapy.html) calls **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (ISO 532-1:2017) - [ZwickerLoudnessAudio.jl](https://zhenxianli.github.io/LISQM/projects/zwickerloudnessaudio-jl.html) calls [ZwickerLoudness.jl](https://zhenxianli.github.io/LISQM/projects/zwickerloudness-jl.html) (ISO 532-1:2017) ### Results checked against another project - [iso532-1-rs](https://zhenxianli.github.io/LISQM/projects/iso532-1-rs.html) against **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (ISO 532-1:2017) - [SoundPalette](https://zhenxianli.github.io/LISQM/projects/soundpalette.html) against **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (ISO 532-1:2017) ### Same contributor - [ZwickerLoudness.jl](https://zhenxianli.github.io/LISQM/projects/zwickerloudness-jl.html) and [ZwickerLoudnessAudio.jl](https://zhenxianli.github.io/LISQM/projects/zwickerloudnessaudio-jl.html) (slink) On the map without a line, as no relation to another project listed for Zwicker loudness is recorded for them: [PsychoacousticParametersMeasurer](https://zhenxianli.github.io/LISQM/projects/psychoacoustic-parameters-measurer.html). ## Implementations | Project | Language | Edition | Functions | Validation (as stated) | Notes | |---|---|---|---|---|---| | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** | MATLAB | [ISO 532-1:2017](https://www.iso.org/standard/63077.html) (stationary and time-varying; since v1.0) | `Loudness_ISO532_1`, `Loudness_ISO532_1_from_wavfile` | standard or paper data | v2.0 corrects the time-varying procedure (PR #48) and the `time_skip` handling of the stationary procedure; results differ from v1.x. | | **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** | Python | [ISO 532-1:2017](https://www.iso.org/standard/63077.html) (stationary (also per segment and from a spectrum) and time-varying; since 1.0.0) | `loudness_zwst`, `loudness_zwst_perseg`, `loudness_zwst_freq`, `loudness_zwtv` | standard or paper data (outcome not stated) | — | | [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html) | MATLAB | [ISO 532-1:2017](https://www.iso.org/standard/63077.html) (stationary and time-varying) | `Loudness_ISO532_1` | standard or paper data (time-varying signals only) | The header cites a 2014 draft of ISO 532-1 and describes the code as Ella Manor's 2015 MATLAB port, with adjustments, of the Annex A C code. | | [ITA-Toolbox](https://zhenxianli.github.io/LISQM/projects/ita-toolbox.html) | MATLAB | [DIN 45631/A1:2010](https://www.dinmedia.de/en/standard/din-45631-a1/122476084) (time-varying, with N5) | `ita_loudness_timevariant` | standard or paper data (results plotted, not checked) | The header says "DIN 45631/A1" without a year; the function was written in August 2010, after the amendment was published. A code comment says the C code of the nonlinearity block was copied from the DIN document, "without its errors". | | [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html) | MATLAB | [Chalupper & Fastl (2002)](https://www.ingentaconnect.com/contentone/dav/aaua/2002/00000088/00000003/art00009) (time-varying) | `LoudnessCF` | not stated | Also outputs loudness fluctuation and time-varying sharpness. Josef Chalupper's code (2000) in its PsySound3 version (2007), adjusted for AARAE by Ella Manor in 2015. | | [ITA-Toolbox](https://zhenxianli.github.io/LISQM/projects/ita-toolbox.html) | MATLAB | [DIN 45631:1991](https://www.dinmedia.de/en/standard/din-45631/1666531) (stationary; free or diffuse field) | `ita_loudness` | standard or paper data | The header says "DIN 45631 / ISO 532 B". The C core (`private/DIN45631.c`) is Aaron Hastings' version (2000) of the BASIC program published by Zwicker, Fastl, Widmann, Kurakata, Kuwano and Namba in J. Acoust. Soc. Jpn (E) 12(1), 1991. | | [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html) | C, Python | [ISO 532-1:2017](https://www.iso.org/standard/63077.html) (stationary and time-varying; also from 28 third-octave levels; since 0.1.0) | `stationary_loudness`, `time_varying_loudness`, `loudness_from_levels` | compared with MoSQITo (its source) | Newly released project, not yet seen to be widely used. | | [iso532-1-rs](https://zhenxianli.github.io/LISQM/projects/iso532-1-rs.html) | Rust, C, Python | [ISO 532-1:2017](https://www.iso.org/standard/63077.html) (stationary, time-varying and streaming; since 0.1.0) | `loudness_zwst`, `loudness_zwtv`, `ZwtvStream` | standard or paper data; also compared with MoSQITo | Newly released project, not yet seen to be widely used. Python uses the same names (`iso532.loudness_zwst` …); the C API has `iso532_loudness_zwst`, `iso532_loudness_zwtv` and `iso532_stream_*`. | | [Kirin Hypha](https://zhenxianli.github.io/LISQM/projects/kirin-hypha.html) | Rust | [ISO 532-1:2017](https://www.iso.org/standard/63077.html) (time-varying, per channel at 48 kHz; stored in the recorded data; since 1.0.0) | `kirin_measure::phase_d` | compared with MoSQITo (its source) | Newly released project, not yet seen to be widely used. Ported from MoSQITo v1.2.1. | | [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html) | C# | [ISO 532-1:2017](https://www.iso.org/standard/63077.html) (stationary (also per segment and from a spectrum) and time-varying) | `Sq.LoudnessZwst`, `Sq.LoudnessZwstFreq`, `Sq.LoudnessZwstPerSeg`, `Sq.LoudnessZwtv` | standard or paper data; also compared with MoSQITo (its source) | Newly released project, not yet seen to be widely used. | | [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | Python | [ISO 532-1:2017](https://www.iso.org/standard/63077.html) (stationary and time-varying; since 3.1.0) | `loudness_zwicker`, `loudness_zwicker_from_spectrum` | standard or paper data | Newly released project, not yet seen to be widely used. | | [SoundPalette](https://zhenxianli.github.io/LISQM/projects/soundpalette.html) | C++ | [ISO 532-1:2017](https://www.iso.org/standard/63077.html) (time-varying, reported as N5; monaural; since v0.5.0) | `sp::compute_psycho` | compared with MoSQITo | Newly released project, not yet seen to be widely used. A source-available licence, not an open-source one: some uses are not allowed. No MoSQITo code is ported. | | [ZwickerLoudness.jl](https://zhenxianli.github.io/LISQM/projects/zwickerloudness-jl.html) | Julia | [ISO 532-1:2017](https://www.iso.org/standard/63077.html) (stationary, from 28 one-third-octave band levels; since 0.2.0) | `zwicker_loudness` | standard or paper data (one Annex B signal); also compared with MoSQITo | Newly released project, not yet seen to be widely used. | | [ZwickerLoudness.jl](https://zhenxianli.github.io/LISQM/projects/zwickerloudness-jl.html) | Julia | [ISO 532-1:2017](https://www.iso.org/standard/63077.html) (time-varying, from band levels at 2000 Hz; N5 and N10; since 0.3.0) | `zwicker_loudness_time_varying` | standard or paper data (one Annex B signal); also compared with MoSQITo (its source) | Newly released project, not yet seen to be widely used. | | [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) | Python | [ISO 532-1:2017](https://www.iso.org/standard/63077.html) | `Loudness_ISO532_1` | compared with SQAT (its source) | Developing project: no publication or documented use by others. No licence file: by default, copying, changing or sharing the code needs the author's permission. | | [PsychoacousticParametersMeasurer](https://zhenxianli.github.io/LISQM/projects/psychoacoustic-parameters-measurer.html) | Python | [ISO 532-1:2017](https://www.iso.org/standard/63077.html) (stationary and time-varying, from third-octave levels) | `loudness_ISO532`, `loudness_ISO532_time` | not stated | Legacy project, no longer maintained. No licence file: by default, copying, changing or sharing the code needs the author's permission. The file header says "Loudness ISO 532-1:2014" and the filter coefficients are labelled "ISO 532-1:2014"; the published edition is ISO 532-1:2017. | | [PsySound3](https://zhenxianli.github.io/LISQM/projects/psysound3.html) | MATLAB | [Chalupper & Fastl (2002)](https://www.ingentaconnect.com/contentone/dav/aaua/2002/00000088/00000003/art00009) (time-varying) | `@LoudnessCF` | not stated | Legacy project, no longer maintained. No licence file: by default, copying, changing or sharing the code needs the author's permission. The analyser names J. Chalupper and H. Fastl as authors. | | [deeuu/loudness](https://zhenxianli.github.io/LISQM/projects/deeuu-loudness.html) | C++, Python | [DIN 45631:1991](https://www.dinmedia.de/en/standard/din-45631/1666531) (stationary only) | `StationaryLoudnessDIN456311991` | compared with GENESIS ACOUSTICS code (Python port) | Legacy project, no longer maintained. Uses 28 third-octave filters with third-order Butterworth responses after ANSI S1.11:1986; there is no time-varying (DIN 45631/A1) model. | | [zwickerloudness](https://zhenxianli.github.io/LISQM/projects/zwickerloudness-sourceforge.html) | C | [DIN 45631:1991](https://www.dinmedia.de/en/standard/din-45631/1666531) (stationary, from one-third-octave band levels) | — | own tests only | Legacy project, no longer maintained. Port of the 1991 BASIC program "according to DIN 45631 (ISO 532B)", the program that accompanies DIN 45631:1991; the same program is the basis of deeuu/loudness. | Also available through tools that call one of these implementations: [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) (via MoSQITo, ISO 532-1:2017), [PsychoBox](https://zhenxianli.github.io/LISQM/projects/psychobox.html) (via MoSQITo, ISO 532-1:2017), [Soundscapy](https://zhenxianli.github.io/LISQM/projects/soundscapy.html) (via MoSQITo, ISO 532-1:2017), and [ZwickerLoudnessAudio.jl](https://zhenxianli.github.io/LISQM/projects/zwickerloudnessaudio-jl.html) (via ZwickerLoudness.jl, ISO 532-1:2017). **See also:** [Sharpness (DIN 45692, Aures, von Bismarck)](https://zhenxianli.github.io/LISQM/metrics/sharpness.html), [Loudness from the Sottek Hearing Model (ECMA-418-2)](https://zhenxianli.github.io/LISQM/metrics/loudness-ecma-418-2.html) ## How they were validated As reported by each project; LISQM has not run the code. Two implementations that agree can still share the same error. - **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, ISO 532-1:2017: standard or paper data - Ported or adapted from [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html). - Checked with the 25 test signals of Annex B.2–B.5 against the standard's tolerances. - For v2.0, the validation notes say that the maximum loudness and N5 of the time-varying test signals are close to the reference values, apart from offsets in the N5 of test signals 12 and 13 that they trace to the standard's reference spreadsheet. In v1.3, test signal 10 deviated by 18.14 % (PR #48). - **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**, ISO 532-1:2017: standard or paper data (outcome not stated) - Ported or adapted from BASIC program of DIN 45631 (Zwicker et al., 1991). - Validation scripts use the ISO 532-1 Annex B test signals; the documentation marks it as validated. - [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html), ISO 532-1:2017: standard or paper data (time-varying signals only) - Ported or adapted from ISO 532-1 Annex A reference program. - A commit of 2017-12-11 says the code was verified with the time-varying test signals of Annex B.5; no check of the stationary method is stated. - [ITA-Toolbox](https://zhenxianli.github.io/LISQM/projects/ita-toolbox.html), DIN 45631/A1:2010: standard or paper data (results plotted, not checked) - A test script plots the results for the amendment's test signals A to D (1 kHz tone pulses of 10 ms to 500 ms) against its tolerance bands; it does not check them automatically. - [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html), Chalupper & Fastl (2002): not stated - Ported or adapted from [PsySound3](https://zhenxianli.github.io/LISQM/projects/psysound3.html) (the author's own code). - [ITA-Toolbox](https://zhenxianli.github.io/LISQM/projects/ita-toolbox.html), DIN 45631:1991: standard or paper data - Ported or adapted from BASIC program of DIN 45631 (Zwicker et al., 1991). - A test compares the loudness of a generated pink noise with 95.09 sone (GF), a value the test attributes to DIN 45631, within 5 %, with third-octave levels computed both by FFT and by filter bank. - [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html), ISO 532-1:2017: compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (its source) - Ported or adapted from **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** and **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**. It was compared with the code it was ported from, which checks the port only. - Model tables taken from MoSQITo were checked element by element; one upper-slope value (0.22) follows the ISO 532-1 reference C table where MoSQITo uses 0.24. - The project says that detailed validation and reference comparisons are kept outside the repository; the results are not published. The README says standards conformance has not been established. - [iso532-1-rs](https://zhenxianli.github.io/LISQM/projects/iso532-1-rs.html), ISO 532-1:2017: standard or paper data; also compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** - Parity tests with MoSQITo 1.2.1 on nine synthetic and Annex B signals (worst reported difference 1.3e-9). - Checked separately against ISO 532-1 Annex B: the README reports stationary offsets of about +0.82 % and −0.76 % for signals 3 and 5, inside the standard's tolerance, and details signals 3, 5 and 10 in docs/ISO-ANNEXB-NUMERICAL-ERROR-2026-07-04.md. - [Kirin Hypha](https://zhenxianli.github.io/LISQM/projects/kirin-hypha.html), ISO 532-1:2017: compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (its source) - Ported or adapted from **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**. It was compared with the code it was ported from, which checks the port only. - Tests assert specific loudness within a relative 1e-3 of MoSQITo. - [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html), ISO 532-1:2017: standard or paper data; also compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (its source) - Ported or adapted from **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**. It was compared with the code it was ported from, which checks the port only. - Unit tests ported from MoSQITo compare stationary loudness with ISO 532-1 Annex B values. - Every public function is compared with the output of Python MoSQITo for seven WAV files (three of them ISO 532-1 test signals), within 1 % (0.5 dB for levels). - [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html), ISO 532-1:2017: standard or paper data - Ported or adapted from ISO 532-1 Annex A reference program. - Annex B test signals are used in the tests. - [SoundPalette](https://zhenxianli.github.io/LISQM/projects/soundpalette.html), ISO 532-1:2017: compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** - Compared with MoSQITo 1.2.1 on calibrated test signals, used as a development-time reference (`NOTES.md`, `tools/psycho_oracle`). - [ZwickerLoudness.jl](https://zhenxianli.github.io/LISQM/projects/zwickerloudness-jl.html), ISO 532-1:2017 (stationary, from 28 one-third-octave band levels): standard or paper data (one Annex B signal); also compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** - Checked against ISO 532-1 Annex B signal 1, the only 28-band reference in Annex B (83.296 sone, tolerance ±5 %). - Checked per Bark bin against MoSQITo output (maximum difference below 0.001 sone/Bark). - [ZwickerLoudness.jl](https://zhenxianli.github.io/LISQM/projects/zwickerloudness-jl.html), ISO 532-1:2017 (time-varying, from band levels at 2000 Hz; N5 and N10): standard or paper data (one Annex B signal); also compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (its source) - Ported or adapted from **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**. It was compared with the code it was ported from, which checks the port only. - Stages are tested against MoSQITo `loudness_zwtv` intermediates (agreement about 1e-9 to 1e-15). - An Annex B.4 "Test signal 6" test regenerates band levels from a local MoSQITo checkout and is skipped when none is present; CI clones MoSQITo for it. - The ISO WAV files are not included. - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) (via MoSQITo), ISO 532-1:2017 (time-varying, through MoSQITo's loudness_zwtv): own tests only - Tests, which run only where MoSQITo is installed (the project's continuous integration does not install it), check that the wrapper returns what a direct call of MoSQITo gives on the same signal, also after resampling to 48 kHz, that the calibration factor scales the loudness, and that `vs_rpm` gives what binning the values by hand gives. - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) (via SQAT), ISO 532-1:2017 (time-varying, through SQAT v2.0's Loudness_ISO532_1 in MATLAB): own tests only - Tests with a stub engine check the call passed to SQAT and the conversion of its output; the comparison with a direct SQAT call runs only where MATLAB and SQAT v2.0 are installed. - [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html), ISO 532-1:2017: 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. - [deeuu/loudness](https://zhenxianli.github.io/LISQM/projects/deeuu-loudness.html), DIN 45631:1991: compared with GENESIS ACOUSTICS code (Python port) - Ported or adapted from BASIC program of DIN 45631 (Zwicker et al., 1991). - Tested against "a quick and dirty Python port of the Matlab code private by GENESIS ACOUSTICS". - [zwickerloudness](https://zhenxianli.github.io/LISQM/projects/zwickerloudness-sourceforge.html), DIN 45631:1991: own tests only - Ported or adapted from BASIC program of DIN 45631 (Zwicker et al., 1991). - The documentation in the release archive says that tests with "classical cases", such as the included test WAV files, "seems to give correct results", and invites users to compare the output with that of the original BASIC program. - [ZwickerLoudnessAudio.jl](https://zhenxianli.github.io/LISQM/projects/zwickerloudnessaudio-jl.html) (via ZwickerLoudness.jl), ISO 532-1:2017 (stationary, from a waveform or WAV file): standard or paper data - ISO 532-1 Annex B signals 2–5, synthesised in-process, are within the standard's ±5 % (+2.9 %, +3.6 %, +0.5 % and +2.6 % per the README). - [ZwickerLoudnessAudio.jl](https://zhenxianli.github.io/LISQM/projects/zwickerloudnessaudio-jl.html) (via ZwickerLoudness.jl), ISO 532-1:2017 (time-varying, from a waveform or WAV file at 48 kHz): standard or paper data; also compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (its source) - Ported or adapted from **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**. It was compared with the code it was ported from, which checks the port only. - Cross-checked end to end with MoSQITo `loudness_zwtv` (N(t) about 3e-16 relative, N5/N10 about 2e-15 absolute). - An Annex B.4 test is skipped when the ISO recording is not available locally. Not stated by PsychoacousticParametersMeasurer, PsySound3, PsychoBox, and Soundscapy. ## Before you compare numbers Implementations of the same metric can give different numbers without either being wrong. Check these choices first. - **Sound field.** ISO 532-1 has a free-field and a diffuse-field version, which give different values for the same signal. Most implementations use free field unless told otherwise. - **Calibration.** The input is sound pressure in pascals. Audio read from a file has to be scaled first, and tools ask for this in different ways: a calibration factor, a reference level or a full-scale level. - **Sample rate.** The time-varying method is specified at 48 kHz. Some implementations reject other rates, others resample them, and the resampler changes the result slightly. - **Percentiles.** N5, the loudness exceeded 5 % of the time, depends on how the percentile is taken: SQAT picks the nearest rank, while MATLAB's `prctile` and the NumPy and Julia quantile functions interpolate, each in its own way. - **Start of the signal.** Time-varying loudness starts from silence and needs time to settle. Whether the start is left out of N5 and other statistics (`time_skip` in SQAT, `time_skip_s` in MetaSona) matters for short signals. What the projects state: - **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**: Statistics such as N5 take the nearest rank of the sorted time series, without interpolation (`get_exceeded_value`), and leave out the first `time_skip` seconds of the signal. - **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**: Signals sampled below 48 kHz are resampled to 48 kHz (FFT method) with a warning; time-varying loudness rejects rates above 48 kHz. - [ITA-Toolbox](https://zhenxianli.github.io/LISQM/projects/ita-toolbox.html): N5 is MATLAB's `prctile(N, 95)`. Blocks are 2 ms long without overlap by default, and the signal is processed at its own sample rate. Third-octave levels come from an FFT by default, or from a filter bank (`'mode', 'filter'`). - [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html): Expects calibrated sound pressure in pascals. The C functions require 48 kHz input; the Python interface resamples other rates to 48 kHz (SciPy `resample_poly`). `time_skip_s` (default 0 s) leaves out the start of the signal from the reported frames; the computation still runs over the whole signal. Time-varying results include every complete frame, labelled at frame centres, which differs from SQAT's handling of the last frame and of time stamps. - [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html): Time-varying loudness and ECMA-418-2 roughness resample input at any other rate to 48 kHz, and stationary loudness resamples rates below 48 kHz; MoSQITo rejects rates above 48 kHz for time-varying loudness. - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html): The method `vs_rpm` of a wrapper's result bins it along rpm after leaving out the start of the signal: by default it takes in each speed bin the 95th percentile of the loudness (N5), the median of the sharpness and the 90th percentile of the roughness, after 0.6 s for loudness and sharpness and 1.5 s for roughness. Keyword arguments override these choices. Input in any unit is turned into sound pressure in Pa by an explicit calibration factor and resampled to 48 kHz. - [ZwickerLoudnessAudio.jl](https://zhenxianli.github.io/LISQM/projects/zwickerloudnessaudio-jl.html): Stationary loudness resamples input below 48 kHz to 48 kHz (polyphase), with a warning. Time-varying loudness accepts 48 kHz input only (an error otherwise). ## References 1. ISO 532:1975. Acoustics — Method for calculating loudness level. https://www.iso.org/standard/4603.html 2. DIN 45631:1991. Berechnung des Lautstärkepegels und der Lautheit aus dem Geräuschspektrum; Verfahren nach E. Zwicker. https://www.dinmedia.de/en/standard/din-45631/1666531 3. Chalupper, J., & Fastl, H. (2002). Dynamic loudness model (DLM) for normal and hearing-impaired listeners. *Acta Acustica united with Acustica*, 88(3), 378–386. https://www.ingentaconnect.com/contentone/dav/aaua/2002/00000088/00000003/art00009 4. DIN 45631/A1:2010. Calculation of loudness level and loudness from the sound spectrum — Zwicker method — Amendment 1: Calculation of the loudness of time-variant sound. https://www.dinmedia.de/en/standard/din-45631-a1/122476084 5. ISO 532-1:2017. Acoustics — Methods for calculating loudness — Part 1: Zwicker method. https://www.iso.org/standard/63077.html 6. ISO/CD 532-1. Acoustics — Methods for calculating loudness — Part 1: Zwicker method (2nd edition). https://www.iso.org/standard/90809.html --- # Moore–Glasberg loudness of stationary sounds (ISO 532-2, ANSI S3.4) > 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/metrics/loudness-moore-glasberg.html **Quantity:** Loudness · **Unit:** sone, phon · **Also known as:** ISO 532-2, ANSI S3.4, ANSI/ASA S3.4-2007, Moore-Glasberg method, Cambridge loudness model Loudness of stationary sounds from the Moore–Glasberg model: the spectrum is turned into an excitation pattern on the ERB-number scale, then into specific loudness, which is summed. ANSI S3.4-2007 standardised the model of Moore, Glasberg & Baer (1997) with later modifications; ISO 532-2:2017 specifies the method for monaural and binaural listening. The current edition is ISO 532-2:2017. In development: ISO/CD 532-2. Open-source implementations of it: [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) (Python; newly released, not yet seen to be widely used; with binaural inhibition). So far, only newly released projects, not yet seen to be widely used in the community, have released an implementation of it. Check their validation before relying on them. Implementations of earlier editions or related models: [AMT](https://zhenxianli.github.io/LISQM/projects/amt.html) (MATLAB, Octave; Chen et al. (2011)), [AMT](https://zhenxianli.github.io/LISQM/projects/amt.html) (MATLAB, Octave; Moore, Glasberg & Baer (1997)), [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html) (MATLAB; Moore, Glasberg & Baer (1997); one channel, or two channels for binaural loudness), [NumpyLibforPsychoAcoustic](https://zhenxianli.github.io/LISQM/projects/numpylib-psychoacoustic.html) (Python; newly released, not yet seen to be widely used; Moore, Glasberg & Baer (1997)), [deeuu/loudness](https://zhenxianli.github.io/LISQM/projects/deeuu-loudness.html) (C++, Python; legacy, no commit since 2019-08; Chen et al. (2011)), [deeuu/loudness](https://zhenxianli.github.io/LISQM/projects/deeuu-loudness.html) (C++, Python; legacy, no commit since 2019-08; ANSI/ASA S3.4-2007; with the binaural inhibition of Moore & Glasberg (2007) for two ears), [Swift & Gee codes](https://zhenxianli.github.io/LISQM/projects/rapid-loudness-sharpness.html) (MATLAB; legacy, no commit since 2020-01; ANSI/ASA S3.4-2007), and [PsySound3](https://zhenxianli.github.io/LISQM/projects/psysound3.html) (MATLAB; legacy, no commit since 2015-03; Moore, Glasberg & Baer (1997)). ## Editions and who implements them | Date | Edition | Status | What changed | Implemented by | |---|---|---|---|---| | 2024-11 | [ISO/CD 532-2](https://www.iso.org/standard/90812.html) | in development | Second edition at committee-draft stage since November 2024. | — | | 2017-06 | [ISO 532-2:2017](https://www.iso.org/standard/63078.html) | current; Under revision; the 2nd edition has been at committee-draft stage since 2024-11-01. | Monaural and binaural loudness of stationary sounds; source code supplied with the standard. | [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | | 2011 | [Chen et al. (2011)](https://doi.org/10.1016/j.heares.2011.08.001) | published | Faster excitation-pattern calculation, also for hearing loss (not standardised). | [AMT](https://zhenxianli.github.io/LISQM/projects/amt.html), [deeuu/loudness](https://zhenxianli.github.io/LISQM/projects/deeuu-loudness.html) | | 2007 | [ANSI/ASA S3.4-2007](https://webstore.ansi.org/standards/asa/ANSIASAS32007R2020) | current | American standard based on the 1997 model with later modifications. | [deeuu/loudness](https://zhenxianli.github.io/LISQM/projects/deeuu-loudness.html), [Swift & Gee codes](https://zhenxianli.github.io/LISQM/projects/rapid-loudness-sharpness.html) | | 1997 | [Moore, Glasberg & Baer (1997)](https://aes2.org/publications/elibrary-page/?id=10272) | published | Model paper (thresholds, loudness and partial loudness). | [AMT](https://zhenxianli.github.io/LISQM/projects/amt.html), [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html), [NumpyLibforPsychoAcoustic](https://zhenxianli.github.io/LISQM/projects/numpylib-psychoacoustic.html), [PsySound3](https://zhenxianli.github.io/LISQM/projects/psysound3.html) | ## Project map The lines of the project map for Moore–Glasberg loudness only, between the projects listed for it (the whole map: https://zhenxianli.github.io/LISQM/projects/map.md). Agreement between a project and the code it was ported or adapted from only checks the port. ### Ported or adapted from another project - From [AMT](https://zhenxianli.github.io/LISQM/projects/amt.html): [NumpyLibforPsychoAcoustic](https://zhenxianli.github.io/LISQM/projects/numpylib-psychoacoustic.html) (Moore, Glasberg & Baer (1997)) ### The author's own code - From [PsySound3](https://zhenxianli.github.io/LISQM/projects/psysound3.html) (Densil Cabrera): [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html) (Moore, Glasberg & Baer (1997)) On the map without a line, as no relation to another project listed for Moore–Glasberg loudness is recorded for them: [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html), [deeuu/loudness](https://zhenxianli.github.io/LISQM/projects/deeuu-loudness.html), and [Swift & Gee codes](https://zhenxianli.github.io/LISQM/projects/rapid-loudness-sharpness.html). ## Implementations | Project | Language | Edition | Functions | Validation (as stated) | Notes | |---|---|---|---|---|---| | [AMT](https://zhenxianli.github.io/LISQM/projects/amt.html) | MATLAB, Octave | [Chen et al. (2011)](https://doi.org/10.1016/j.heares.2011.08.001) | `chen2011` | standard or paper data | Listed as "CHEN2011 - Fast excitation pattern estimation". | | [AMT](https://zhenxianli.github.io/LISQM/projects/amt.html) | MATLAB, Octave | [Moore, Glasberg & Baer (1997)](https://aes2.org/publications/elibrary-page/?id=10272) | `moore1997` | standard or paper data | Listed as "MOORE1997 - Loudness model for stationary signals" in models/Contents.m. | | [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html) | MATLAB | [Moore, Glasberg & Baer (1997)](https://aes2.org/publications/elibrary-page/?id=10272) (one channel, or two channels for binaural loudness) | `Loudness_MGB2b` | not stated | A port and extension of PsySound3's code by Densil Cabrera and Doheon Lee, version 1.02 (27 October 2015). Two-channel input gives binaural loudness after Moore & Glasberg (2007). The audio is resampled to 32 kHz. | | [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | Python | [ISO 532-2:2017](https://www.iso.org/standard/63078.html) (with binaural inhibition; since 3.1.0) | `loudness_moore_glasberg`, `loudness_moore_glasberg_from_spectrum`, `loudness_moore_glasberg_from_third_octave` | standard or paper data | Newly released project, not yet seen to be widely used. | | [NumpyLibforPsychoAcoustic](https://zhenxianli.github.io/LISQM/projects/numpylib-psychoacoustic.html) | Python | [Moore, Glasberg & Baer (1997)](https://aes2.org/publications/elibrary-page/?id=10272) | `model.moore1997`, `equalSones.getEqualSones` | standard or paper data; also compared with AMT (its source) | Newly released project, not yet seen to be widely used. No licence file: by default, copying, changing or sharing the code needs the author's permission. | | [deeuu/loudness](https://zhenxianli.github.io/LISQM/projects/deeuu-loudness.html) | C++, Python | [Chen et al. (2011)](https://doi.org/10.1016/j.heares.2011.08.001) | `StationaryLoudnessCHGM2011` | own tests only | Legacy project, no longer maintained. | | [deeuu/loudness](https://zhenxianli.github.io/LISQM/projects/deeuu-loudness.html) | C++, Python | [ANSI/ASA S3.4-2007](https://webstore.ansi.org/standards/asa/ANSIASAS32007R2020) (with the binaural inhibition of Moore & Glasberg (2007) for two ears) | `StationaryLoudnessANSIS342007` | own tests only | Legacy project, no longer maintained. | | [Swift & Gee codes](https://zhenxianli.github.io/LISQM/projects/rapid-loudness-sharpness.html) | MATLAB | [ANSI/ASA S3.4-2007](https://webstore.ansi.org/standards/asa/ANSIASAS32007R2020) | `stationaryLoudness` | not stated | Legacy project, no longer maintained. | | [PsySound3](https://zhenxianli.github.io/LISQM/projects/psysound3.html) | MATLAB | [Moore, Glasberg & Baer (1997)](https://aes2.org/publications/elibrary-page/?id=10272) | `@LoudnessMGB` | not stated | Legacy project, no longer maintained. No licence file: by default, copying, changing or sharing the code needs the author's permission. Also cites Glasberg & Moore (1990) for the auditory filters. The analyser description says it covers time-varying and binaural loudness, and it also cites Glasberg & Moore (2002) and Moore & Glasberg (2007). | **See also:** [Time-varying loudness, Moore–Glasberg–Schlittenlacher (ISO 532-3)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.html) ## How they were validated As reported by each project; LISQM has not run the code. Two implementations that agree can still share the same error. - [AMT](https://zhenxianli.github.io/LISQM/projects/amt.html), Chen et al. (2011): standard or paper data - Has the experiment script `exp_chen2011`; AMT's experiment scripts reproduce the results of the publication they are named after. - [AMT](https://zhenxianli.github.io/LISQM/projects/amt.html), Moore, Glasberg & Baer (1997): standard or paper data - AMT's experiment scripts (`exp_…`) reproduce published results; this model has `exp_moore1997`. - [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html), Moore, Glasberg & Baer (1997): not stated - Ported or adapted from [PsySound3](https://zhenxianli.github.io/LISQM/projects/psysound3.html) (the author's own code). - [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html), ISO 532-2:2017: standard or paper data - The documentation says it reproduces the Annex B tone and broadband cases to within a percent or two. - [NumpyLibforPsychoAcoustic](https://zhenxianli.github.io/LISQM/projects/numpylib-psychoacoustic.html), Moore, Glasberg & Baer (1997): standard or paper data; also compared with [AMT](https://zhenxianli.github.io/LISQM/projects/amt.html) (its source) - Ported or adapted from [AMT](https://zhenxianli.github.io/LISQM/projects/amt.html). It was compared with the code it was ported from, which checks the port only. - The implementation document says the model is compared with the results shown in the original article (plots of its Fig. 8 and Fig. 12). - Numerical error reports (PDF) compare intermediate arrays, such as the outer- and middle-ear filter, with AMT's MATLAB output. - [deeuu/loudness](https://zhenxianli.github.io/LISQM/projects/deeuu-loudness.html), Chen et al. (2011): own tests only - [deeuu/loudness](https://zhenxianli.github.io/LISQM/projects/deeuu-loudness.html), ANSI/ASA S3.4-2007: own tests only - Unit tests cover each module and model. - A validation script writes computed and expected loudness of pure tones to CSV; the expected values are labelled "Table 7" and "Example 2" without naming their source. Not stated by Swift & Gee codes and PsySound3. ## Before you compare numbers Implementations of the same metric can give different numbers without either being wrong. Check these choices first. What the projects state: - [Swift & Gee codes](https://zhenxianli.github.io/LISQM/projects/rapid-loudness-sharpness.html): The code works at 32 kHz; other rates are resampled with the Signal Processing Toolbox's `resample`. ## References 1. Moore, B. C. J., Glasberg, B. R., & Baer, T. (1997). A model for the prediction of thresholds, loudness, and partial loudness. *Journal of the Audio Engineering Society*, 45(4), 224–240. https://aes2.org/publications/elibrary-page/?id=10272 2. ANSI/ASA S3.4-2007. Procedure for the Computation of Loudness of Steady Sounds. https://webstore.ansi.org/standards/asa/ANSIASAS32007R2020 3. Chen, Z., Hu, G., Glasberg, B. R., & Moore, B. C. J. (2011). A new method of calculating auditory excitation patterns and loudness for steady sounds. *Hearing Research*, 282(1–2), 204–215. https://doi.org/10.1016/j.heares.2011.08.001 4. ISO 532-2:2017. Acoustics — Methods for calculating loudness — Part 2: Moore-Glasberg method. https://www.iso.org/standard/63078.html 5. ISO/CD 532-2. Acoustics — Methods for calculating loudness — Part 2: Moore-Glasberg method (2nd edition). https://www.iso.org/standard/90812.html --- # Time-varying loudness, Moore–Glasberg–Schlittenlacher (ISO 532-3) > 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/metrics/loudness-moore-glasberg-time-varying.html **Quantity:** Loudness · **Unit:** sone, phon · **Also known as:** ISO 532-3, TVL, time-varying loudness, Glasberg and Moore 2002, Moore-Glasberg-Schlittenlacher method, short-term loudness, long-term loudness Loudness of time-varying sounds as instantaneous, short-term and long-term loudness. It starts from the Glasberg & Moore (2002) model; Moore et al. (2016) added binaural inhibition and Moore et al. (2018) revised the time constants. ISO 532-3:2023 standardises the resulting Moore–Glasberg–Schlittenlacher method for stationary and time-varying sounds. The current edition is ISO 532-3:2023. In development: ISO/CD 532-3. Open-source implementations of it: [iso532-3 (tv2018.m)](https://zhenxianli.github.io/LISQM/projects/js2251-iso532-3.html) (MATLAB; reference MATLAB code referred to in ISO 532-3, per its readme) and [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) (Python; newly released, not yet seen to be widely used). Implementations of earlier editions or related models: [AMT](https://zhenxianli.github.io/LISQM/projects/amt.html) (MATLAB, Octave; Moore et al. (2016); binaural), [AMT](https://zhenxianli.github.io/LISQM/projects/amt.html) (MATLAB, Octave; Glasberg & Moore (2002)), [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html) (MATLAB; Glasberg & Moore (2002); time-varying; one channel, or two channels for binaural loudness), [torch_amt](https://zhenxianli.github.io/LISQM/projects/torch-amt.html) (Python; newly released, not yet seen to be widely used; Moore et al. (2016); binaural), [NumpyLibforPsychoAcoustic](https://zhenxianli.github.io/LISQM/projects/numpylib-psychoacoustic.html) (Python; newly released, not yet seen to be widely used; Glasberg & Moore (2002)), [torch_amt](https://zhenxianli.github.io/LISQM/projects/torch-amt.html) (Python; newly released, not yet seen to be widely used; Glasberg & Moore (2002); short-term and long-term loudness), [LoudnessModel](https://zhenxianli.github.io/LISQM/projects/loudnessmodel.html) (Python; developing; Moore et al. (2018); instantaneous, short-term and long-term loudness; binaural), [deeuu/loudness](https://zhenxianli.github.io/LISQM/projects/deeuu-loudness.html) (C++, Python; legacy, no commit since 2019-08; Glasberg & Moore (2002)), [HAW loudness tool](https://zhenxianli.github.io/LISQM/projects/haw-specific-loudness.html) (MATLAB; legacy, no commit since 2022-12; Glasberg & Moore (2002); specific loudness over time on ERB bands; three temporal models), [PsySound3](https://zhenxianli.github.io/LISQM/projects/psysound3.html) (MATLAB; legacy, no commit since 2015-03; Glasberg & Moore (2002); time-varying and binaural), and [Swift & Gee codes](https://zhenxianli.github.io/LISQM/projects/rapid-loudness-sharpness.html) (MATLAB; legacy, no commit since 2020-01; Glasberg & Moore (2002)). ## Editions and who implements them | Date | Edition | Status | What changed | Implemented by | |---|---|---|---|---| | 2024-11 | [ISO/CD 532-3](https://www.iso.org/standard/90816.html) | in development | Second edition at committee-draft stage since November 2024. | — | | 2023-07 | [ISO 532-3:2023](https://www.iso.org/standard/69856.html) | current; Under revision; the 2nd edition has been at committee-draft stage since 2024-11-01. | Standardised method; source code supplied with the standard. | [iso532-3 (tv2018.m)](https://zhenxianli.github.io/LISQM/projects/js2251-iso532-3.html), [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | | 2018 | [Moore et al. (2018)](https://doi.org/10.1121/1.5027246) | published | Revised time constants. | [LoudnessModel](https://zhenxianli.github.io/LISQM/projects/loudnessmodel.html) | | 2016 | [Moore et al. (2016)](https://doi.org/10.1177/2331216516682698) | published | Adds binaural inhibition. | [AMT](https://zhenxianli.github.io/LISQM/projects/amt.html), [torch_amt](https://zhenxianli.github.io/LISQM/projects/torch-amt.html) | | 2002 | [Glasberg & Moore (2002)](https://aes2.org/publications/elibrary-page/?id=11081) | published | Time-varying loudness model (short-term and long-term loudness). | [AMT](https://zhenxianli.github.io/LISQM/projects/amt.html), [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html), [NumpyLibforPsychoAcoustic](https://zhenxianli.github.io/LISQM/projects/numpylib-psychoacoustic.html), [torch_amt](https://zhenxianli.github.io/LISQM/projects/torch-amt.html), [deeuu/loudness](https://zhenxianli.github.io/LISQM/projects/deeuu-loudness.html), [HAW loudness tool](https://zhenxianli.github.io/LISQM/projects/haw-specific-loudness.html), [PsySound3](https://zhenxianli.github.io/LISQM/projects/psysound3.html), [Swift & Gee codes](https://zhenxianli.github.io/LISQM/projects/rapid-loudness-sharpness.html) | ## Project map The lines of the project map for time-varying loudness (Moore–Glasberg–Schlittenlacher) only, between the projects listed for it (the whole map: https://zhenxianli.github.io/LISQM/projects/map.md). Agreement between a project and the code it was ported or adapted from only checks the port. ### Ported or adapted from another project - From [AMT](https://zhenxianli.github.io/LISQM/projects/amt.html): [NumpyLibforPsychoAcoustic](https://zhenxianli.github.io/LISQM/projects/numpylib-psychoacoustic.html) (Glasberg & Moore (2002)); [torch_amt](https://zhenxianli.github.io/LISQM/projects/torch-amt.html) (Moore et al. (2016) and Glasberg & Moore (2002)) - From [iso532-3 (tv2018.m)](https://zhenxianli.github.io/LISQM/projects/js2251-iso532-3.html): [LoudnessModel](https://zhenxianli.github.io/LISQM/projects/loudnessmodel.html) (Moore et al. (2018)) ### The author's own code - From [PsySound3](https://zhenxianli.github.io/LISQM/projects/psysound3.html) (Densil Cabrera): [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html) (Glasberg & Moore (2002)) On the map without a line, as no relation to another project listed for time-varying loudness (Moore–Glasberg–Schlittenlacher) is recorded for them: [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html), [deeuu/loudness](https://zhenxianli.github.io/LISQM/projects/deeuu-loudness.html), [HAW loudness tool](https://zhenxianli.github.io/LISQM/projects/haw-specific-loudness.html), and [Swift & Gee codes](https://zhenxianli.github.io/LISQM/projects/rapid-loudness-sharpness.html). ## Implementations | Project | Language | Edition | Functions | Validation (as stated) | Notes | |---|---|---|---|---|---| | [iso532-3 (tv2018.m)](https://zhenxianli.github.io/LISQM/projects/js2251-iso532-3.html) | MATLAB | [ISO 532-3:2023](https://www.iso.org/standard/69856.html) (reference MATLAB code referred to in ISO 532-3, per its readme) | `tv2018` | not stated | No licence file: by default, copying, changing or sharing the code needs the author's permission. Written by the model's authors (per the readme PDF). | | [AMT](https://zhenxianli.github.io/LISQM/projects/amt.html) | MATLAB, Octave | [Moore et al. (2016)](https://doi.org/10.1177/2331216516682698) (binaural) | `moore2016` | not stated | Listed as "MOORE2016 - Binaural loudness model". The header says Josef Schlittenlacher provided the original implementation for the AMT in 2018, from code written for ANSI S3.4-2007 and ISO 532-2:2017. | | [AMT](https://zhenxianli.github.io/LISQM/projects/amt.html) | MATLAB, Octave | [Glasberg & Moore (2002)](https://aes2.org/publications/elibrary-page/?id=11081) | `glasberg2002` | standard or paper data | Listed as "GLASBERG2002 - Loudness model for time-variant signals". | | [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html) | MATLAB | [Glasberg & Moore (2002)](https://aes2.org/publications/elibrary-page/?id=11081) (time-varying; one channel, or two channels for binaural loudness) | `Loudness_MGB2b` | not stated | Same function as the stationary model; the binaural extension follows Moore & Glasberg (2007). | | [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | Python | [ISO 532-3:2023](https://www.iso.org/standard/69856.html) (since 3.1.0) | `loudness_moore_glasberg_time` | standard or paper data | Newly released project, not yet seen to be widely used. | | [torch_amt](https://zhenxianli.github.io/LISQM/projects/torch-amt.html) | Python | [Moore et al. (2016)](https://doi.org/10.1177/2331216516682698) (binaural) | `torch_amt.models.Moore2016` | compared with AMT (its source) | Newly released project, not yet seen to be widely used. Described as a "1:1 port" of AMT `moore2016`, with outer and middle ear per ANSI S3.4-2007 (docstring). | | [NumpyLibforPsychoAcoustic](https://zhenxianli.github.io/LISQM/projects/numpylib-psychoacoustic.html) | Python | [Glasberg & Moore (2002)](https://aes2.org/publications/elibrary-page/?id=11081) | `model.glasberg2002` | not stated | Newly released project, not yet seen to be widely used. No licence file: by default, copying, changing or sharing the code needs the author's permission. Present in the code but not described in the implementation document. | | [torch_amt](https://zhenxianli.github.io/LISQM/projects/torch-amt.html) | Python | [Glasberg & Moore (2002)](https://aes2.org/publications/elibrary-page/?id=11081) (short-term and long-term loudness) | `torch_amt.models.Glasberg2002` | compared with AMT (its source) | Newly released project, not yet seen to be widely used. Ported from AMT `glasberg2002`. | | [LoudnessModel](https://zhenxianli.github.io/LISQM/projects/loudnessmodel.html) | Python | [Moore et al. (2018)](https://doi.org/10.1121/1.5027246) (instantaneous, short-term and long-term loudness; binaural) | `tvl2018.compute_loudness`, `tvl2018_jax.compute_loudness` | own tests only | Developing project: no publication or documented use by others. | | [deeuu/loudness](https://zhenxianli.github.io/LISQM/projects/deeuu-loudness.html) | C++, Python | [Glasberg & Moore (2002)](https://aes2.org/publications/elibrary-page/?id=11081) | `DynamicLoudnessGM2002` | own tests only | Legacy project, no longer maintained. Per the header, excitation patterns follow ANSI S3.4-2007, and parameter sets use the modified long-term time constants of Moore et al. (2003) and the ANSI S3.4-2007 equation for specific loudness at high levels. | | [HAW loudness tool](https://zhenxianli.github.io/LISQM/projects/haw-specific-loudness.html) | MATLAB | [Glasberg & Moore (2002)](https://aes2.org/publications/elibrary-page/?id=11081) (specific loudness over time on ERB bands; three temporal models) | `loud_gui`, `matlab_loud` | reference code: LOUDAES and TVL (Glasberg & Moore's programs) | Legacy project, no longer maintained. | | [PsySound3](https://zhenxianli.github.io/LISQM/projects/psysound3.html) | MATLAB | [Glasberg & Moore (2002)](https://aes2.org/publications/elibrary-page/?id=11081) (time-varying and binaural) | `@LoudnessMGB` | not stated | Legacy project, no longer maintained. No licence file: by default, copying, changing or sharing the code needs the author's permission. The same analyser as the stationary entry; its description cites Glasberg & Moore (2002). | | [Swift & Gee codes](https://zhenxianli.github.io/LISQM/projects/rapid-loudness-sharpness.html) | MATLAB | [Glasberg & Moore (2002)](https://aes2.org/publications/elibrary-page/?id=11081) | `Glasberg_loudness` | not stated | Legacy project, no longer maintained. | **See also:** [Moore–Glasberg loudness of stationary sounds (ISO 532-2, ANSI S3.4)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg.html) ## How they were validated As reported by each project; LISQM has not run the code. Two implementations that agree can still share the same error. - [iso532-3 (tv2018.m)](https://zhenxianli.github.io/LISQM/projects/js2251-iso532-3.html), ISO 532-3:2023: not stated - The folder "code for tables" has scripts that compute Table 5 (sone to phon) and the values of Annexes B and C (AnnexC.m is headed "Signals numbered as in ISO 532-2 Annex B"); the scripts do not name ISO 532-3. - [AMT](https://zhenxianli.github.io/LISQM/projects/amt.html), Moore et al. (2016): not stated - There is no `exp_moore2016` experiment script on the develop branch. - [AMT](https://zhenxianli.github.io/LISQM/projects/amt.html), Glasberg & Moore (2002): standard or paper data - Has the experiment script `exp_glasberg2002`; AMT's experiment scripts reproduce the results of the publication they are named after. - [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html), Glasberg & Moore (2002): not stated - Ported or adapted from [PsySound3](https://zhenxianli.github.io/LISQM/projects/psysound3.html) (the author's own code). - [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html), ISO 532-3:2023: standard or paper data - A documented deviation: the Annex B WAV-file cases are not reproduced, and Annex C values are used instead. - [torch_amt](https://zhenxianli.github.io/LISQM/projects/torch-amt.html), Moore et al. (2016); Glasberg & Moore (2002): compared with [AMT](https://zhenxianli.github.io/LISQM/projects/amt.html) (its source) - Ported or adapted from [AMT](https://zhenxianli.github.io/LISQM/projects/amt.html). It was compared with the code it was ported from, which checks the port only. - Agreement with AMT is claimed in the documentation, without stored reference data. - [LoudnessModel](https://zhenxianli.github.io/LISQM/projects/loudnessmodel.html), Moore et al. (2018): own tests only - Ported or adapted from [iso532-3 (tv2018.m)](https://zhenxianli.github.io/LISQM/projects/js2251-iso532-3.html). - Tests run in GitHub Actions compare overall loudness, the first five short-term and long-term values and selected intermediate stages for one input (1 kHz tone, 100 ms, 32 kHz) with hard-coded expected values. - The README calls this "a known accurate output", but neither it nor the tests say where the values come from. - [deeuu/loudness](https://zhenxianli.github.io/LISQM/projects/deeuu-loudness.html), Glasberg & Moore (2002): own tests only - [HAW loudness tool](https://zhenxianli.github.io/LISQM/projects/haw-specific-loudness.html), Glasberg & Moore (2002): reference code: LOUDAES and TVL (Glasberg & Moore's programs) - The thesis compares the total loudness of pure tones (30–100 dB) with LOUDAES, Glasberg & Moore's program for stationary sounds: mostly within 5 %, with larger deviations at low levels near 50 Hz and above 5 kHz (−9.3 % for 5 kHz at 30 dB). - For two equal-level tones at 1 and 2 kHz, the deviation from LOUDAES ranges from −4.4 % to +3.8 % with the Hann-window FFT and reaches +6.7 % with the Fourier-time transform. - For the stationary part of signals the thesis reports good agreement with TVL, Glasberg & Moore's program for time-varying sounds, without figures. Not stated by NumpyLibforPsychoAcoustic, PsySound3, and Swift & Gee codes. ## Before you compare numbers Implementations of the same metric can give different numbers without either being wrong. Check these choices first. - **Sample rate.** The Cambridge programs and ISO 532-3 work at 32 kHz. Most implementations resample to it; phonometry runs at the native rate (a documented deviation), and the Swift & Gee code and the HAW tool expect 32 kHz input. - **Which output.** The models give instantaneous, short-term and long-term loudness; compare like with like. What the projects state: - [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html): Documented deviation: it runs at the native sample rate instead of resampling to 32 kHz. - [HAW loudness tool](https://zhenxianli.github.io/LISQM/projects/haw-specific-loudness.html): Input must be sampled at 32 kHz; the reference level is entered as the sound pressure level of a full-scale sine. - [Swift & Gee codes](https://zhenxianli.github.io/LISQM/projects/rapid-loudness-sharpness.html): The code works at 32 kHz; other rates are resampled with the Signal Processing Toolbox's `resample`. ## References 1. Glasberg, B. R., & Moore, B. C. J. (2002). A model of loudness applicable to time-varying sounds. *Journal of the Audio Engineering Society*, 50(5), 331–342. https://aes2.org/publications/elibrary-page/?id=11081 2. Moore, B. C. J., Glasberg, B. R., Varathanathan, A., & Schlittenlacher, J. (2016). A loudness model for time-varying sounds incorporating binaural inhibition. *Trends in Hearing*, 20, 2331216516682698. https://doi.org/10.1177/2331216516682698 3. Moore, B. C. J., Jervis, M., Harries, L., & Schlittenlacher, J. (2018). Testing and refining a loudness model for time-varying sounds incorporating binaural inhibition. *The Journal of the Acoustical Society of America*, 143(3), 1504–1513. https://doi.org/10.1121/1.5027246 4. ISO 532-3:2023. Acoustics — Methods for calculating loudness — Part 3: Moore-Glasberg-Schlittenlacher method. https://www.iso.org/standard/69856.html 5. ISO/CD 532-3. Acoustics — Methods for calculating loudness — Part 3: Moore-Glasberg-Schlittenlacher method (2nd edition). https://www.iso.org/standard/90816.html --- # Loudness from the Sottek Hearing Model (ECMA-418-2) > 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/metrics/loudness-ecma-418-2.html **Quantity:** Loudness · **Unit:** sone_HMS · **Also known as:** ECMA-418-2 loudness, Sottek Hearing Model, SHM loudness, sone_HMS, hearing model loudness Loudness from the Sottek Hearing Model defined in ECMA-418-2. The hearing model (Clause 5) produces specific loudness; the 2nd edition (2022) added a loudness calculation for sounds with tonal and noise components (Clause 8). ECMA-418-2 has had four editions in five years, so implementations of different editions can disagree. The current edition is ECMA-418-2:2025 (4th ed.). Open-source implementations of it: **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (MATLAB), **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** (Python; mono or stereo, with combined binaural output), [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (MATLAB, Python; binaural and specific loudness), [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html) (C, Python; newly released, not yet seen to be widely used; Clause 8 loudness with tonal/noise separation; mono or stereo), and [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) (Python; newly released, not yet seen to be widely used; mono only). Implementations of earlier editions or related models: **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (MATLAB; ECMA-418-2:2024 (3rd ed.); mono or two channels with binaural combination), **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (Python; ECMA-418-2:2022 (2nd ed.); Clause 5 hearing-model specific and total loudness only; the Clause 8 loudness added in the 2nd edition is not implemented), [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html) (C#; newly released, not yet seen to be widely used; ECMA-418-2:2022 (2nd ed.); Clause 5 hearing-model loudness only, as in MoSQITo), and [MoSQITo-FDP](https://zhenxianli.github.io/LISQM/projects/mosqito-fdp.html) (Python; legacy, archived; ECMA-418-2:2020 (1st ed.); hearing model with specific and total loudness). ## Editions and who implements them | Date | Edition | Status | What changed | Implemented by | |---|---|---|---|---| | 2025-06 | [ECMA-418-2:2025 (4th ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf) | current | Hearing-model clauses 5.1.2.2 and 5.1.5.2 revised; conformance requires 48 kHz sampling. | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)**, [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html), [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html), [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | | 2024-12 | [ECMA-418-2:2024 (3rd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_3rd_edition_december_2024.pdf) | superseded | Adds a diffuse-field outer and middle ear filter. | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** | | 2022-12 | [ECMA-418-2:2022 (2nd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_2nd_edition_december_2022.pdf) | superseded | New Clause 8, loudness of sounds with subcritical or wider bandwidth. | **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**, [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html) | | 2020-12 | [ECMA-418-2:2020 (1st ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_1st_edition_december_2020.pdf) | superseded | Hearing model (Clause 5) with specific loudness. | [MoSQITo-FDP](https://zhenxianli.github.io/LISQM/projects/mosqito-fdp.html) | ## Project map The lines of the project map for Sottek Hearing Model loudness only, between the projects listed for it (the whole map: https://zhenxianli.github.io/LISQM/projects/map.md). Agreement between a project and the code it was ported or adapted from only checks the port. ### Ported or adapted from another project - From **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**: [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html) (ECMA-418-2:2025 (4th ed.)) - From **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**: [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html) (ECMA-418-2:2022 (2nd ed.)) ### The author's own code - From [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (Mike Lotinga): **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (ECMA-418-2:2025 (4th ed.) and ECMA-418-2:2024 (3rd ed.)); **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** (ECMA-418-2:2025 (4th ed.)) - From **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (Daniel Jiménez-Caminero Costa): [MoSQITo-FDP](https://zhenxianli.github.io/LISQM/projects/mosqito-fdp.html) (ECMA-418-2:2020 (1st ed.)) ### Used at run time - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) calls **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** (ECMA-418-2:2025 (4th ed.)) - [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) calls **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** (ECMA-418-2:2025 (4th ed.)) - [PsychoBox](https://zhenxianli.github.io/LISQM/projects/psychobox.html) calls **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (ECMA-418-2:2022 (2nd ed.)) ### Same contributor - **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** and **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** (Mike Lotinga) On the map without a line, as no relation to another project listed for Sottek Hearing Model loudness is recorded for them: [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html). ## Implementations | Project | Language | Edition | Functions | Validation (as stated) | Notes | |---|---|---|---|---|---| | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** | MATLAB | [ECMA-418-2:2025 (4th ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf) (since v2.0) | `Loudness_ECMA418_2`, `LoudnessFromComp_ECMA418_2` | compared with ArtemiS SUITE (HEAD acoustics) | Updated to the 4th edition in 2025. | | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** | MATLAB | [ECMA-418-2:2024 (3rd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_3rd_edition_december_2024.pdf) (mono or two channels with binaural combination; since v1.3) | `Loudness_ECMA418_2`, `LoudnessFromComp_ECMA418_2` | compared with ArtemiS SUITE (HEAD acoustics) | In v1.3; v2.0 follows the 4th edition. | | **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** | Python | [ECMA-418-2:2022 (2nd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_2nd_edition_december_2022.pdf) (Clause 5 hearing-model specific and total loudness only; the Clause 8 loudness added in the 2nd edition is not implemented; since 1.2.0) | `loudness_ecma` | standard or paper data (outcome not stated) | Followed the 1st edition (2020) in versions 1.0.0–1.1.1 and the 2nd edition (2022) from 1.2.0. It grew out of the hearing model that Daniel Jiménez-Caminero added in May 2021, which is also kept in MoSQITo-FDP. | | **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** | Python | [ECMA-418-2:2025 (4th ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf) (mono or stereo, with combined binaural output; since 0.1.9) | `shm_loudness_ecma`, `shm_loudness_ecma_from_comp` | standard or paper data (calibration signals and one recording); also compared with ArtemiS SUITE (HEAD acoustics) | — | | [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) | MATLAB, Python | [ECMA-418-2:2025 (4th ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf) (binaural and specific loudness) | `acousticSHMLoudness`, `acousticSHMLoudnessFromComponent` | compared with ArtemiS SUITE (HEAD acoustics) | — | | [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html) | C, Python | [ECMA-418-2:2025 (4th ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf) (Clause 8 loudness with tonal/noise separation; mono or stereo; since 0.2.0) | `loudness_ecma`, `ecma_tonal_analysis` | compared with SQAT (its source) | Newly released project, not yet seen to be widely used. Adapted from the SQAT/RefMap MATLAB code by Lotinga and Torjussen. | | [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | Python | [ECMA-418-2:2025 (4th ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf) (mono only; since 3.1.0) | `loudness_ecma` | standard or paper data (calibration signal only; outside the allowed adjustment) | Newly released project, not yet seen to be widely used. | | [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html) | C# | [ECMA-418-2:2022 (2nd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_2nd_edition_december_2022.pdf) (Clause 5 hearing-model loudness only, as in MoSQITo) | `Sq.LoudnessEcma` | compared with MoSQITo (its source) | Newly released project, not yet seen to be widely used. | | [MoSQITo-FDP](https://zhenxianli.github.io/LISQM/projects/mosqito-fdp.html) | Python | [ECMA-418-2:2020 (1st ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_1st_edition_december_2020.pdf) (hearing model with specific and total loudness) | `comp_loudness` | standard or paper data | Legacy project, no longer maintained. Module `mosqito.functions.hearing_model`. Its author committed the same hearing model to MoSQITo on 2021-05-30, two weeks before this snapshot. | Also available through tools that call one of these implementations: [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) (via sottek-hearing-model, ECMA-418-2:2025 (4th ed.)), [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) (via sottek-hearing-model, ECMA-418-2:2025 (4th ed.)), and [PsychoBox](https://zhenxianli.github.io/LISQM/projects/psychobox.html) (via MoSQITo, ECMA-418-2:2022 (2nd ed.)). **See also:** [Zwicker loudness (ISO 532-1, DIN 45631)](https://zhenxianli.github.io/LISQM/metrics/loudness-zwicker.html), [Tonality from the Sottek Hearing Model (ECMA-418-2)](https://zhenxianli.github.io/LISQM/metrics/tonality-ecma-418-2.html), [Roughness from the Sottek Hearing Model (ECMA-418-2)](https://zhenxianli.github.io/LISQM/metrics/roughness-ecma-418-2.html), [Fluctuation strength from the Sottek Hearing Model (ECMA-418-2)](https://zhenxianli.github.io/LISQM/metrics/fluctuation-strength-ecma-418-2.html) ## How they were validated As reported by each project; LISQM has not run the code. Two implementations that agree can still share the same error. - **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, ECMA-418-2:2025 (4th ed.): compared with ArtemiS SUITE (HEAD acoustics) - Ported or adapted from [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (the author's own code). - Checked for the 4th edition against the ISO 226:2003 equal-loudness contours and against reference results from HEAD acoustics ArtemiS SUITE 17.1 (named in the source of SQAT's validation page) for a binaural recording of a train station (last checked in November 2025). - **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, ECMA-418-2:2024 (3rd ed.): compared with ArtemiS SUITE (HEAD acoustics) - Ported or adapted from [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (the author's own code). - Checked against the ISO 226:2003 equal-loudness contours and against reference results from HEAD acoustics ArtemiS SUITE 15.7 (named in the source of SQAT's validation page) for a binaural recording of a train station. - **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**, ECMA-418-2:2022 (2nd ed.): standard or paper data (outcome not stated) - Validation scripts compare with figures of the standard. - **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)**, ECMA-418-2:2025 (4th ed.): standard or paper data (calibration signals and one recording); also compared with ArtemiS SUITE (HEAD acoustics) - Ported or adapted from [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (the author's own code). - Unit tests check the standard's calibration signals (1 kHz, 40 dB gives 1 sone_HMS). - RefMap's verification compared the Python code, before it became this package, and the MATLAB original with HEAD acoustics ArtemiS v17.1 for the two calibration signals and a 30 s binaural street recording. - **Checked by the maintainer of LISQM:** In personal use, Zhenxian LI found its results in very good agreement with those of HEAD acoustics ArtemiS SUITE. This is a personal check, not a published comparison. - [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html), ECMA-418-2:2025 (4th ed.): compared with ArtemiS SUITE (HEAD acoustics) - MATLAB and Python verified against HEAD acoustics ArtemiS v17.1 for a 1 kHz tone at 40 dB SPL, a 1 kHz tone amplitude-modulated at 70 Hz at 60 dB SPL and a 30 s binaural street recording. - The audio and reference results are on Zenodo (doi:10.5281/zenodo.18849587). - [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html), ECMA-418-2:2025 (4th ed.): 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. - The project says that detailed validation and reference comparisons are kept outside the repository; the results are not published. - [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html), ECMA-418-2:2025 (4th ed.): standard or paper data (calibration signal only; outside the allowed adjustment) - Checked at the calibration signal only, where it gives 0.9843 sone_HMS (−1.55 %). - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) (via sottek-hearing-model), ECMA-418-2:2025 (4th ed.): own tests only - Tests, which run only where sottek-hearing-model is installed (the project's continuous integration does not install it), check that the wrapper returns what a direct call of the package gives. - [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html), ECMA-418-2:2022 (2nd ed.): compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (its source) - Ported or adapted from **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**. It was compared with the code it was ported from, which checks the port only. - Every public function is compared with the output of Python MoSQITo for seven WAV files (three of them ISO 532-1 test signals), within 1 % (0.5 dB for levels); MoSQITo's unit tests are ported too. - [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) (via sottek-hearing-model), 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. - [MoSQITo-FDP](https://zhenxianli.github.io/LISQM/projects/mosqito-fdp.html), ECMA-418-2:2020 (1st ed.): standard or paper data - Ported or adapted from **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (the author's own code). - Validation scripts compare the ear filter and model output with figures and values from ECMA-418-2 and ECMA-74 Annex F. Not stated by PsychoBox. ## Before you compare numbers Implementations of the same metric can give different numbers without either being wrong. Check these choices first. - **Edition.** The four editions give different results; compare implementations of the same edition (see the table of editions). - **Which loudness.** Clause 5 gives the hearing model's basic loudness; from the 2nd edition on, Clause 8 defines the loudness to report. MoSQITo and Mosqito.NET compute only the Clause 5 value, while the RefMap code and its ports (SQAT, sottek-hearing-model, MetaSona) compute the Clause 8 loudness. - **Start of the signal.** The filters need time to settle, so overall values leave out the first 304 ms (Section 8.1.4 of the 2025 edition, as cited by SQAT, which enforces it). - **Sample rate.** The model is defined at 48 kHz; other rates are resampled, and resamplers differ slightly. - **Sound field and channels.** The outer- and middle-ear filter can be free frontal or, from the 3rd edition, diffuse, and two channels can be combined into one binaural value. Check both settings. What the projects state: - **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**: Statistics take the nearest rank of the sorted time series, without interpolation (`get_exceeded_value`), and leave out the first `time_skip` seconds; the code enforces at least 304 ms (it cites ECMA-418-2:2025, Section 8.1.4). - **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)**: Input at other sample rates is resampled to 48 kHz. - [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html): Expects calibrated sound pressure in pascals. The C functions require 48 kHz input; the Python interface resamples other rates to 48 kHz (SciPy `resample_poly`). `time_skip_s` (default 0 s) leaves out the start of the signal from the reported frames; the computation still runs over the whole signal. Time-varying results include every complete frame, labelled at frame centres, which differs from SQAT's handling of the last frame and of time stamps. - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html): For the ECMA-418-2 metrics, `vs_rpm` takes by default the mean of the loudness and the tonality in each speed bin, the tonality only above 0.02 tu_HMS, and the 90th percentile of the roughness, after about 0.3 s (0.6 s for SQAT's tonality). Input in any unit is turned into sound pressure in Pa by an explicit calibration factor and resampled to 48 kHz. ## References 1. ECMA-418-2:2020 (1st ed.). Psychoacoustic metrics for ITT equipment — Part 2 (models based on human perception). https://ecma-international.org/wp-content/uploads/ECMA-418-2_1st_edition_december_2020.pdf 2. ECMA-418-2:2022 (2nd ed.). Psychoacoustic metrics for ITT equipment — Part 2 (models based on human perception). https://ecma-international.org/wp-content/uploads/ECMA-418-2_2nd_edition_december_2022.pdf 3. ECMA-418-2:2024 (3rd ed.). Psychoacoustic metrics for ITT equipment — Part 2 (methods for describing human perception based on the Sottek Hearing Model). https://ecma-international.org/wp-content/uploads/ECMA-418-2_3rd_edition_december_2024.pdf 4. ECMA-418-2:2025 (4th ed.). Psychoacoustic metrics for ITT equipment — Part 2 (methods for describing human perception based on the Sottek Hearing Model). https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf --- # Sharpness (DIN 45692, Aures, von Bismarck) > 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/metrics/sharpness.html **Quantity:** Sharpness · **Unit:** acum · **Also known as:** DIN 45692, acum, Zwicker sharpness, Aures sharpness, von Bismarck sharpness Sharpness is the weighted first moment of specific loudness along the critical-band rate, with a weighting that emphasises high frequencies. DIN 45692:2009 standardises the weighting and a test procedure, using Zwicker specific loudness (ISO 532-1 / DIN 45631). Most implementations also offer the weightings of von Bismarck (1974) and Aures (1985). The current edition is DIN 45692:2009. Open-source implementations of it: **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (MATLAB; DIN 45692 weighting, plus von Bismarck and Aures options), **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (Python; weightings: DIN 45692, Aures, von Bismarck, Fastl), [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (MATLAB, Python; DIN 45692 weighting applied to ECMA-418-2 loudness), [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html) (C, Python; newly released, not yet seen to be widely used; from specific loudness), [Kirin Hypha](https://zhenxianli.github.io/LISQM/projects/kirin-hypha.html) (Rust; newly released, not yet seen to be widely used; from the time-varying specific loudness; shown in the plug-in), [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html) (C#; newly released, not yet seen to be widely used; weightings: DIN 45692, Aures, von Bismarck, Fastl), [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) (Python; newly released, not yet seen to be widely used; also the informative Aures and von Bismarck variants), [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html) (Julia; newly released, not yet seen to be widely used; weightings: DIN 45692 (default), Aures, von Bismarck, Fastl; from a ZwickerLoudness.jl result), [SoundPalette](https://zhenxianli.github.io/LISQM/projects/soundpalette.html) (C++; newly released, not yet seen to be widely used; from time-averaged specific loudness), [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) (Python; developing), and [PsychoacousticParametersMeasurer](https://zhenxianli.github.io/LISQM/projects/psychoacoustic-parameters-measurer.html) (Python; legacy, no commit since 2021-06). Implementations of earlier editions or related models: [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html) (MATLAB; Fastl & Zwicker (2007); from the specific loudness of LoudnessCF) and [Swift & Gee codes](https://zhenxianli.github.io/LISQM/projects/rapid-loudness-sharpness.html) (MATLAB; legacy, no commit since 2020-01; Swift & Gee (2017); from Moore–Glasberg specific loudness, stationary and time-varying). ## Editions and who implements them | Date | Edition | Status | What changed | Implemented by | |---|---|---|---|---| | 2017 | [Swift & Gee (2017)](https://doi.org/10.1121/1.5016193) | published | — | [Swift & Gee codes](https://zhenxianli.github.io/LISQM/projects/rapid-loudness-sharpness.html) | | 2009-08 | [DIN 45692:2009](https://www.dinmedia.de/en/standard/din-45692/117635111) | current | Standardised weighting and test procedure; no revision announced. | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**, [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html), [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html), [Kirin Hypha](https://zhenxianli.github.io/LISQM/projects/kirin-hypha.html), [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html), [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html), [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html), [SoundPalette](https://zhenxianli.github.io/LISQM/projects/soundpalette.html), [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html), [PsychoacousticParametersMeasurer](https://zhenxianli.github.io/LISQM/projects/psychoacoustic-parameters-measurer.html) | | 2007 | [Fastl & Zwicker (2007)](https://doi.org/10.1007/978-3-540-68888-4) | published | Zwicker & Fastl weighting as given in the textbook. | [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html) | | 1985 | [Aures (1985b)](https://zhenxianli.github.io/LISQM/standards.html#ref-aures-1985-euphony) | published | Weighting that depends on total loudness. | — | | 1974 | [von Bismarck (1974)](https://www.ingentaconnect.com/contentone/dav/aaua/1974/00000030/00000003/art00006) | published | Original sharpness weighting. | — | ## Project map The lines of the project map for sharpness only, between the projects listed for it (the whole map: https://zhenxianli.github.io/LISQM/projects/map.md). Agreement between a project and the code it was ported or adapted from only checks the port. ### Ported or adapted from another project - From **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**: [Kirin Hypha](https://zhenxianli.github.io/LISQM/projects/kirin-hypha.html) (DIN 45692:2009); [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html) (DIN 45692:2009) - From **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**: [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) (DIN 45692:2009) ### Used at run time - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) calls **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (DIN 45692:2009) - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) calls **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (DIN 45692:2009) - [PsychoBox](https://zhenxianli.github.io/LISQM/projects/psychobox.html) calls **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (DIN 45692:2009) - [Soundscapy](https://zhenxianli.github.io/LISQM/projects/soundscapy.html) calls **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (DIN 45692:2009) ### Results checked against another project - [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html) against **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (DIN 45692:2009) - [SoundPalette](https://zhenxianli.github.io/LISQM/projects/soundpalette.html) against **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (DIN 45692:2009) ### Same contributor - **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** and [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (Mike Lotinga) On the map without a line, as no relation to another project listed for sharpness is recorded for them: [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html), [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html), [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html), [PsychoacousticParametersMeasurer](https://zhenxianli.github.io/LISQM/projects/psychoacoustic-parameters-measurer.html), and [Swift & Gee codes](https://zhenxianli.github.io/LISQM/projects/rapid-loudness-sharpness.html). ## Implementations | Project | Language | Edition | Functions | Validation (as stated) | Notes | |---|---|---|---|---|---| | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** | MATLAB | [DIN 45692:2009](https://www.dinmedia.de/en/standard/din-45692/117635111) (DIN 45692 weighting, plus von Bismarck and Aures options; since v1.0) | `Sharpness_DIN45692`, `Sharpness_DIN45692_from_loudness`, `Sharpness_DIN45692_from_wavfile` | standard or paper data | — | | **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** | Python | [DIN 45692:2009](https://www.dinmedia.de/en/standard/din-45692/117635111) (weightings: DIN 45692, Aures, von Bismarck, Fastl; since 1.0.2) | `sharpness_din_st`, `sharpness_din_tv`, `sharpness_din_perseg`, `sharpness_din_from_loudness`, `sharpness_din_freq` | standard or paper data (outcome not stated) | — | | [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) | MATLAB, Python | [DIN 45692:2009](https://www.dinmedia.de/en/standard/din-45692/117635111) (DIN 45692 weighting applied to ECMA-418-2 loudness) | `acousticSharpnessSHM`, `acousticSharpFromSHMLoud` | not stated | The DIN 45692 weighting is the option `widmann`; Aures (the default) and von Bismarck weightings are also offered. DIN 45692 itself is defined on Zwicker specific loudness. A further variant works from a Zwicker-based quasi-loudness (`acousticSharpFromQuasiLoud`). An inaccuracy in the Aures weighting was fixed on 2026-09-18. | | [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html) | MATLAB | [Fastl & Zwicker (2007)](https://doi.org/10.1007/978-3-540-68888-4) (from the specific loudness of LoudnessCF) | `sharpness_Fastl` | not stated | The header describes a weighting fitted to data in Zwicker & Fastl's *Psychoacoustics: Facts and Models* (edition not stated), names the method "Fastl (1991)" and credits Claire Churchill (2004). | | [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html) | C, Python | [DIN 45692:2009](https://www.dinmedia.de/en/standard/din-45692/117635111) (from specific loudness; since 0.1.0) | `sharpness_din45692` | not stated | Newly released project, not yet seen to be widely used. | | [Kirin Hypha](https://zhenxianli.github.io/LISQM/projects/kirin-hypha.html) | Rust | [DIN 45692:2009](https://www.dinmedia.de/en/standard/din-45692/117635111) (from the time-varying specific loudness; shown in the plug-in; since 1.0.0) | `kirin_measure::phase_d::sharpness` | compared with MoSQITo (its source) | Newly released project, not yet seen to be widely used. | | [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html) | C# | [DIN 45692:2009](https://www.dinmedia.de/en/standard/din-45692/117635111) (weightings: DIN 45692, Aures, von Bismarck, Fastl) | `Sq.SharpnessDinSt`, `Sq.SharpnessDinTv`, `Sq.SharpnessDinPerSeg`, `Sq.SharpnessDinFreq` | compared with MoSQITo (its source) | Newly released project, not yet seen to be widely used. | | [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | Python | [DIN 45692:2009](https://www.dinmedia.de/en/standard/din-45692/117635111) (also the informative Aures and von Bismarck variants; since 3.1.0) | `sharpness_din`, `sharpness_din_from_specific` | standard or paper data | Newly released project, not yet seen to be widely used. | | [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html) | Julia | [DIN 45692:2009](https://www.dinmedia.de/en/standard/din-45692/117635111) (weightings: DIN 45692 (default), Aures, von Bismarck, Fastl; from a ZwickerLoudness.jl result; since 0.2.0) | `sharpness` | standard or paper data; also compared with MoSQITo | Newly released project, not yet seen to be widely used. Uses ZwickerLoudness.jl. | | [SoundPalette](https://zhenxianli.github.io/LISQM/projects/soundpalette.html) | C++ | [DIN 45692:2009](https://www.dinmedia.de/en/standard/din-45692/117635111) (from time-averaged specific loudness; since v0.5.0) | `sp::compute_psycho` | compared with MoSQITo | Newly released project, not yet seen to be widely used. A source-available licence, not an open-source one: some uses are not allowed. | | [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) | Python | [DIN 45692:2009](https://www.dinmedia.de/en/standard/din-45692/117635111) | `Sharpness_DIN45692`, `Sharpness_DIN45692_from_loudness` | compared with SQAT (its source) | Developing project: no publication or documented use by others. No licence file: by default, copying, changing or sharing the code needs the author's permission. | | [Swift & Gee codes](https://zhenxianli.github.io/LISQM/projects/rapid-loudness-sharpness.html) | MATLAB | [Swift & Gee (2017)](https://doi.org/10.1121/1.5016193) (from Moore–Glasberg specific loudness, stationary and time-varying) | `stationaryLoudness`, `Glasberg_loudness` | not stated | Legacy project, no longer maintained. | | [PsychoacousticParametersMeasurer](https://zhenxianli.github.io/LISQM/projects/psychoacoustic-parameters-measurer.html) | Python | [DIN 45692:2009](https://www.dinmedia.de/en/standard/din-45692/117635111) | `calc_sharpness` | not stated | Legacy project, no longer maintained. No licence file: by default, copying, changing or sharing the code needs the author's permission. The file header says "Sharpness DIN 45692"; the function also returns the von Bismarck and Aures variants. | Also available through tools that call one of these implementations: [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) (via MoSQITo, DIN 45692:2009), [PsychoBox](https://zhenxianli.github.io/LISQM/projects/psychobox.html) (via MoSQITo, DIN 45692:2009), and [Soundscapy](https://zhenxianli.github.io/LISQM/projects/soundscapy.html) (via MoSQITo, DIN 45692:2009). **See also:** [Zwicker loudness (ISO 532-1, DIN 45631)](https://zhenxianli.github.io/LISQM/metrics/loudness-zwicker.html) ## How they were validated As reported by each project; LISQM has not run the code. Two implementations that agree can still share the same error. - **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, DIN 45692:2009: standard or paper data - Checked with the narrowband and broadband test signals of DIN 45692. - **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**, DIN 45692:2009: standard or paper data (outcome not stated) - Validation scripts use the DIN 45692 test signals; the documentation marks it as validated. - [Kirin Hypha](https://zhenxianli.github.io/LISQM/projects/kirin-hypha.html), DIN 45692:2009: compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (its source) - Ported or adapted from **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**. It was compared with the code it was ported from, which checks the port only. - Tests assert agreement with MoSQITo within 0.05 acum. - [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html), DIN 45692:2009: compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (its source) - Ported or adapted from **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**. It was compared with the code it was ported from, which checks the port only. - Every public function is compared with the output of Python MoSQITo for seven WAV files (three of them ISO 532-1 test signals), within 1 % (0.5 dB for levels); MoSQITo's unit tests are ported too. - [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html), DIN 45692:2009: standard or paper data - Checked with the DIN 45692 reference signal and Tables A.2 and A.3. - [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html), DIN 45692:2009: standard or paper data; also compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** - Tested against all 41 reference signals of DIN 45692:2009 chapter 6 (21 narrowband, 20 broadband) within the standard's tolerance of ±max(5 %, 0.05 acum). - Cross-checked against MoSQITo for all four weightings. - Total loudness N is computed as the Riemann sum over the 240-bin specific loudness (`0.1 * sum`), not taken from `ZwickerResult.loudness` (see the `sharpness` docstring). - [SoundPalette](https://zhenxianli.github.io/LISQM/projects/soundpalette.html), DIN 45692:2009: compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** - Compared with MoSQITo 1.2.1 (tolerance ±5 %). - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) (via MoSQITo), DIN 45692:2009 (through MoSQITo's sharpness_din_from_loudness): own tests only - Tests, which run only where MoSQITo is installed (the project's continuous integration does not install it), check that the wrapper returns what a direct call of MoSQITo gives, also when the sharpness is computed from an earlier loudness result. - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) (via SQAT), DIN 45692:2009 (through SQAT v2.0's Sharpness_DIN45692_from_loudness in MATLAB): own tests only - Tests with a stub engine check the call passed to SQAT and the conversion of its output; the comparison with a direct SQAT call runs only where MATLAB and SQAT v2.0 are installed. - [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html), DIN 45692:2009: 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. Not stated by refmap-psychoacoustics, AARAE, MetaSona, Swift & Gee codes, PsychoacousticParametersMeasurer, PsychoBox, and Soundscapy. ## Before you compare numbers Implementations of the same metric can give different numbers without either being wrong. Check these choices first. - **Weighting.** The DIN 45692, Aures and von Bismarck weightings give different values for the same sound, and Aures' weighting depends on loudness. Many tools offer several; check which one is used (RefMap's default is Aures). - **Loudness input.** Sharpness is computed from Zwicker specific loudness, so the loudness choices (sound field, calibration, sample rate) carry over. Sharpness from another loudness model, such as ECMA-418-2 (RefMap) or Moore–Glasberg (Swift & Gee), is a different quantity. What the projects state: - **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**: Statistics such as N5 take the nearest rank of the sorted time series, without interpolation (`get_exceeded_value`), and leave out the first `time_skip` seconds of the signal. - [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html): Expects calibrated sound pressure in pascals. The C functions require 48 kHz input; the Python interface resamples other rates to 48 kHz (SciPy `resample_poly`). `time_skip_s` (default 0 s) leaves out the start of the signal from the reported frames; the computation still runs over the whole signal. Time-varying results include every complete frame, labelled at frame centres, which differs from SQAT's handling of the last frame and of time stamps. - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html): The method `vs_rpm` of a wrapper's result bins it along rpm after leaving out the start of the signal: by default it takes in each speed bin the 95th percentile of the loudness (N5), the median of the sharpness and the 90th percentile of the roughness, after 0.6 s for loudness and sharpness and 1.5 s for roughness. Keyword arguments override these choices. Input in any unit is turned into sound pressure in Pa by an explicit calibration factor and resampled to 48 kHz. - [Swift & Gee codes](https://zhenxianli.github.io/LISQM/projects/rapid-loudness-sharpness.html): The code works at 32 kHz; other rates are resampled with the Signal Processing Toolbox's `resample`. ## References 1. von Bismarck, G. (1974). Sharpness as an attribute of the timbre of steady sounds. *Acustica*, 30(3), 159–172. https://www.ingentaconnect.com/contentone/dav/aaua/1974/00000030/00000003/art00006 2. Aures, W. (1985). Berechnungsverfahren für den sensorischen Wohlklang beliebiger Schallsignale [A model for calculating the sensory euphony of various sounds]. *Acustica*, 59, 130–141. 3. Fastl, H., & Zwicker, E. (2007). *Psychoacoustics: Facts and models* (3rd ed.). Springer. https://doi.org/10.1007/978-3-540-68888-4 4. DIN 45692:2009. Messtechnische Simulation der Hörempfindung Schärfe (Measurement technique for the simulation of the auditory sensation of sharpness). https://www.dinmedia.de/en/standard/din-45692/117635111 5. Swift, S. H., & Gee, K. L. (2017). Extending sharpness calculation for an alternative loudness metric input. *The Journal of the Acoustical Society of America*, 142(6), EL549. https://doi.org/10.1121/1.5016193 --- # Roughness, Daniel & Weber model > 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/metrics/roughness-daniel-weber.html **Quantity:** Roughness · **Unit:** asper · **Also known as:** Daniel and Weber roughness, Daniel & Weber 1997, Aures roughness, asper Roughness from the model of Daniel & Weber (1997), an optimised version of Aures's (1985) model. It is not standardised, and the paper leaves details open (filter bank, calibration, framing), so implementations can give different values for the same signal. There is no standard; the reference model is Daniel & Weber (1997). Open-source implementations of it: **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (MATLAB), **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (Python), [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html) (MATLAB), [ITA-Toolbox](https://zhenxianli.github.io/LISQM/projects/ita-toolbox.html) (MATLAB), [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html) (C, Python; newly released, not yet seen to be widely used), [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html) (C#; newly released, not yet seen to be widely used), [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html) (Julia; newly released, not yet seen to be widely used), [SoundPalette](https://zhenxianli.github.io/LISQM/projects/soundpalette.html) (C++; newly released, not yet seen to be widely used), [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) (Python; developing), and [PsySound3](https://zhenxianli.github.io/LISQM/projects/psysound3.html) (MATLAB; legacy, no commit since 2015-03). SQAT rewrote its implementation in September 2026 (PR #65, released in v2.0). It builds on Alejandro Osses's code and was corrected against revised code that Dik Hermes provided in 2025, which changes results compared with SQAT v1.3 and earlier. ## Editions and who implements them | Date | Edition | Status | What changed | Implemented by | |---|---|---|---|---| | 1997 | [Daniel & Weber (1997)](https://zhenxianli.github.io/LISQM/standards.html#ref-daniel-weber-1997) | published | Reference model. | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**, [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html), [ITA-Toolbox](https://zhenxianli.github.io/LISQM/projects/ita-toolbox.html), [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html), [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html), [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html), [SoundPalette](https://zhenxianli.github.io/LISQM/projects/soundpalette.html), [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html), [PsySound3](https://zhenxianli.github.io/LISQM/projects/psysound3.html) | | 1985 | [Aures (1985a)](https://zhenxianli.github.io/LISQM/standards.html#ref-aures-1985-roughness) | published | Earlier model that Daniel & Weber optimised. | — | ## Project map The lines of the project map for roughness (Daniel & Weber) only, between the projects listed for it (the whole map: https://zhenxianli.github.io/LISQM/projects/map.md). Agreement between a project and the code it was ported or adapted from only checks the port. ### Ported or adapted from another project - From [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html): **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (Daniel & Weber (1997)) - From **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**: [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html) (Daniel & Weber (1997)); [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) (Daniel & Weber (1997)) - From **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**: [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html) (Daniel & Weber (1997)); [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html) (Daniel & Weber (1997)); [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html) (Daniel & Weber (1997)) ### The author's own code - From [PsySound3](https://zhenxianli.github.io/LISQM/projects/psysound3.html) (Densil Cabrera): [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html) (Daniel & Weber (1997)) ### Used at run time - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) calls **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (Daniel & Weber (1997)) - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) calls **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (Daniel & Weber (1997)) - [PsychoBox](https://zhenxianli.github.io/LISQM/projects/psychobox.html) calls **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (Daniel & Weber (1997)) - [Soundscapy](https://zhenxianli.github.io/LISQM/projects/soundscapy.html) calls **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (Daniel & Weber (1997)) ### Results checked against another project - [SoundPalette](https://zhenxianli.github.io/LISQM/projects/soundpalette.html) against **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (Daniel & Weber (1997)) On the map without a line, as no relation to another project listed for roughness (Daniel & Weber) is recorded for them: [ITA-Toolbox](https://zhenxianli.github.io/LISQM/projects/ita-toolbox.html). ## Implementations | Project | Language | Edition | Functions | Validation (as stated) | Notes | |---|---|---|---|---|---| | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** | MATLAB | [Daniel & Weber (1997)](https://zhenxianli.github.io/LISQM/standards.html#ref-daniel-weber-1997) (since v1.0) | `Roughness_Daniel1997`, `Roughness_Daniel1997_from_wavfile` | standard or paper data | The v1.x code is AARAE's `roughnessDW.m` (Dik Hermes's code), adapted and verified for SQAT in 2023. v2.0 rewrites it (PR #65, 2026-09-08) with corrections from revised code that Dik Hermes sent to the SQAT team in 2025: 63 of 119 validation values go up and 56 down (largest change 0.155 asper). | | **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** | Python | [Daniel & Weber (1997)](https://zhenxianli.github.io/LISQM/standards.html#ref-daniel-weber-1997) (since 1.0.0) | `roughness_dw`, `roughness_dw_freq` | standard or paper data (outcome not stated) | — | | [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html) | MATLAB | [Daniel & Weber (1997)](https://zhenxianli.github.io/LISQM/standards.html#ref-daniel-weber-1997) | `RoughnessDW` | not stated | Ported from PsySound3's `@RoughnessDW` by Ella Manor and Densil Cabrera (2015). | | [ITA-Toolbox](https://zhenxianli.github.io/LISQM/projects/ita-toolbox.html) | MATLAB | [Daniel & Weber (1997)](https://zhenxianli.github.io/LISQM/standards.html#ref-daniel-weber-1997) | `ita_roughness_daniel` | standard or paper data (a code comment only) | Uses sub-functions written by Martin Klemenz in 2000 (`external_packages/roughness_daniel`). | | [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html) | C, Python | [Daniel & Weber (1997)](https://zhenxianli.github.io/LISQM/standards.html#ref-daniel-weber-1997) (since 0.1.0) | `roughness_daniel_weber` | compared with SQAT (its source) | Newly released project, not yet seen to be widely used. Follows SQAT revision `e6228b78`, which includes SQAT's September 2026 rewrite but not its later fix to the Terhardt filter bank (PR #77, in SQAT v2.0). | | [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html) | C# | [Daniel & Weber (1997)](https://zhenxianli.github.io/LISQM/standards.html#ref-daniel-weber-1997) | `Sq.RoughnessDw`, `Sq.RoughnessDwFreq` | compared with MoSQITo (its source) | Newly released project, not yet seen to be widely used. | | [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html) | Julia | [Daniel & Weber (1997)](https://zhenxianli.github.io/LISQM/standards.html#ref-daniel-weber-1997) (since 0.2.0) | `roughness_dw` | standard or paper data; also compared with MoSQITo (its source) | Newly released project, not yet seen to be widely used. | | [SoundPalette](https://zhenxianli.github.io/LISQM/projects/soundpalette.html) | C++ | [Daniel & Weber (1997)](https://zhenxianli.github.io/LISQM/standards.html#ref-daniel-weber-1997) (since v0.5.0) | `sp::compute_psycho` | compared with MoSQITo | Newly released project, not yet seen to be widely used. A source-available licence, not an open-source one: some uses are not allowed. | | [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) | Python | [Daniel & Weber (1997)](https://zhenxianli.github.io/LISQM/standards.html#ref-daniel-weber-1997) | `Roughness_Daniel1997` | compared with SQAT (its source) | Developing project: no publication or documented use by others. No licence file: by default, copying, changing or sharing the code needs the author's permission. Follows SQAT v1.3, before SQAT's September 2026 rewrite. | | [PsySound3](https://zhenxianli.github.io/LISQM/projects/psysound3.html) | MATLAB | [Daniel & Weber (1997)](https://zhenxianli.github.io/LISQM/standards.html#ref-daniel-weber-1997) | `@RoughnessDW` | not stated | Legacy project, no longer maintained. No licence file: by default, copying, changing or sharing the code needs the author's permission. Adapted for PsySound3 by Matt Flax (2006), with changes by Farhan Rizwi (2007). AARAE's `RoughnessDW.m` is a port of this analyser. | Also available through tools that call one of these implementations: [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) (via MoSQITo, Daniel & Weber (1997)), [PsychoBox](https://zhenxianli.github.io/LISQM/projects/psychobox.html) (via MoSQITo, Daniel & Weber (1997)), and [Soundscapy](https://zhenxianli.github.io/LISQM/projects/soundscapy.html) (via MoSQITo, Daniel & Weber (1997)). **See also:** [Roughness from the Sottek Hearing Model (ECMA-418-2)](https://zhenxianli.github.io/LISQM/metrics/roughness-ecma-418-2.html) ## How they were validated As reported by each project; LISQM has not run the code. Two implementations that agree can still share the same error. - **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, Daniel & Weber (1997): standard or paper data - Ported or adapted from [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html). - Checked against amplitude- and frequency-modulation dependences from the literature. - **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**, Daniel & Weber (1997): standard or paper data (outcome not stated) - The documentation marks it as validated against reference data. - [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html), Daniel & Weber (1997): not stated - Ported or adapted from [PsySound3](https://zhenxianli.github.io/LISQM/projects/psysound3.html) (the author's own code). - [ITA-Toolbox](https://zhenxianli.github.io/LISQM/projects/ita-toolbox.html), Daniel & Weber (1997): standard or paper data (a code comment only) - A code comment says that after major bug fixes the values "more or less match those of the paper by Daniel"; no test or comparison script is included. - [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html), Daniel & Weber (1997): 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)** and **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**. It was compared with the code it was ported from, which checks the port only. - The project says that detailed validation and reference comparisons are kept outside the repository; the results are not published. - The API documentation calls the function experimental and says normative validation remains open. - [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html), Daniel & Weber (1997): compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (its source) - Ported or adapted from **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**. It was compared with the code it was ported from, which checks the port only. - Every public function is compared with the output of Python MoSQITo for seven WAV files (three of them ISO 532-1 test signals), within 1 % (0.5 dB for levels); MoSQITo's unit tests are ported too. - [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html), Daniel & Weber (1997): standard or paper data; also compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (its source) - Ported or adapted from **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**. It was compared with the code it was ported from, which checks the port only. - Tested against the Zwicker & Fastl reference curves on MoSQITo's validation grid (7 carrier × 11 modulation frequencies) within ±0.1 asper, and cross-checked against MoSQITo's `roughness_dw` on identical signals. - Five points at a 2 kHz carrier miss the ±0.1 asper gate. MoSQITo misses them by the same amount (and overshoots Daniel & Weber's own curve there by 15–31 %), so these five are checked for agreement with MoSQITo to 5e-3 asper instead. - Against the Daniel & Weber curves themselves, 63 of the 77 grid points are within 30 % of the reference (reported, not gated). - [SoundPalette](https://zhenxianli.github.io/LISQM/projects/soundpalette.html), Daniel & Weber (1997): compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** - Compared with MoSQITo 1.2.1 with a wider tolerance (±15 %); the README notes that published Daniel & Weber implementations differ by about 10–20 %. - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) (via MoSQITo), Daniel & Weber (1997) (through MoSQITo's roughness_dw): own tests only - Tests, which run only where MoSQITo is installed (the project's continuous integration does not install it), check that the wrapper returns what a direct call of MoSQITo gives. - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) (via SQAT), Daniel & Weber (1997) (through SQAT v2.0's Roughness_Daniel1997 in MATLAB): own tests only - Tests with a stub engine check the call passed to SQAT and the conversion of its output; the comparison with a direct SQAT call runs only where MATLAB and SQAT v2.0 are installed. - [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html), Daniel & Weber (1997): 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. Not stated by PsySound3, PsychoBox, and Soundscapy. ## Before you compare numbers Implementations of the same metric can give different numbers without either being wrong. Check these choices first. - **Frames.** The model works on 200 ms frames. Implementations differ in the hop between frames and in whether the last complete frame is reported, which changes time series and their percentiles. - **Code lineage.** SQAT's code (after Dik Hermes) and MoSQITo's differ in details, and ports follow one or the other; PsychoacousticMetrics.jl, which follows MoSQITo, says the two place the weighting g(z_i) differently. - **Version.** SQAT rewrote its roughness in v2.0 (September 2026), so SQAT v1.3 and earlier, v2.0 and code ported from either give different values. What the projects state: - **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**: Statistics such as N5 take the nearest rank of the sorted time series, without interpolation (`get_exceeded_value`), and leave out the first `time_skip` seconds of the signal. - [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html): Expects calibrated sound pressure in pascals. The C functions require 48 kHz input; the Python interface resamples other rates to 48 kHz (SciPy `resample_poly`). `time_skip_s` (default 0 s) leaves out the start of the signal from the reported frames; the computation still runs over the whole signal. Time-varying results include every complete frame, labelled at frame centres, which differs from SQAT's handling of the last frame and of time stamps. - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html): The method `vs_rpm` of a wrapper's result bins it along rpm after leaving out the start of the signal: by default it takes in each speed bin the 95th percentile of the loudness (N5), the median of the sharpness and the 90th percentile of the roughness, after 0.6 s for loudness and sharpness and 1.5 s for roughness. Keyword arguments override these choices. Input in any unit is turned into sound pressure in Pa by an explicit calibration factor and resampled to 48 kHz. ## References 1. Aures, W. (1985). Ein Berechnungsverfahren der Rauhigkeit [A procedure for calculating auditory roughness]. *Acustica*, 58, 268–281. 2. Daniel, P., & Weber, R. (1997). Psychoacoustical roughness: Implementation of an optimized model. *Acta Acustica united with Acustica*, 83(1), 113–123. --- # Roughness from the Sottek Hearing Model (ECMA-418-2) > 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/metrics/roughness-ecma-418-2.html **Quantity:** Roughness · **Unit:** asper_HMS · **Also known as:** ECMA-418-2 roughness, asper_HMS, Sottek roughness, SHM roughness Roughness from the Sottek Hearing Model, Clause 7 of ECMA-418-2. The 2nd edition (2022) added an optional entropy weighting for cases where rotational speed is measured; the 3rd edition (2024) adapted zero-padding and segmentation, and its refinements were mainly to roughness. The current edition is ECMA-418-2:2025 (4th ed.). Open-source implementations of it: **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (MATLAB), **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** (Python; with combined binaural output), [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (MATLAB, Python), [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html) (C, Python; newly released, not yet seen to be widely used; mono or stereo; optional entropy weighting not applied), [ecma418-torch](https://zhenxianli.github.io/LISQM/projects/ecma418-torch.html) (Python; newly released, not yet seen to be widely used; with binaural combination; without the optional entropy weighting of Section 7.1.6), and [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) (Python; newly released, not yet seen to be widely used; mono only; no entropy weighting). Implementations of earlier editions or related models: **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (MATLAB; ECMA-418-2:2024 (3rd ed.); with binaural combination), **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (Python; ECMA-418-2:2022 (2nd ed.)), and [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html) (C#; newly released, not yet seen to be widely used; ECMA-418-2:2022 (2nd ed.)). ## Editions and who implements them | Date | Edition | Status | What changed | Implemented by | |---|---|---|---|---| | 2025-06 | [ECMA-418-2:2025 (4th ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf) | current | Hearing-model and conformance updates (48 kHz sampling). | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)**, [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html), [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html), [ecma418-torch](https://zhenxianli.github.io/LISQM/projects/ecma418-torch.html), [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | | 2024-12 | [ECMA-418-2:2024 (3rd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_3rd_edition_december_2024.pdf) | superseded | Zero-padding and segmentation adapted; refinements mainly to roughness. | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** | | 2022-12 | [ECMA-418-2:2022 (2nd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_2nd_edition_december_2022.pdf) | superseded | Refined calculation; optional entropy-weighted roughness. | **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**, [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html) | | 2020-12 | [ECMA-418-2:2020 (1st ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_1st_edition_december_2020.pdf) | superseded | Clause 7 roughness. | — | ## Project map The lines of the project map for Sottek Hearing Model roughness only, between the projects listed for it (the whole map: https://zhenxianli.github.io/LISQM/projects/map.md). Agreement between a project and the code it was ported or adapted from only checks the port. ### Ported or adapted from another project - From **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**: [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html) (ECMA-418-2:2025 (4th ed.)) - From **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**: [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html) (ECMA-418-2:2022 (2nd ed.)) ### The author's own code - From [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (Mike Lotinga): **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (ECMA-418-2:2025 (4th ed.) and ECMA-418-2:2024 (3rd ed.)); **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** (ECMA-418-2:2025 (4th ed.)) ### Used at run time - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) calls **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** (ECMA-418-2:2025 (4th ed.)) - [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) calls **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** (ECMA-418-2:2025 (4th ed.)) - [PsychoBox](https://zhenxianli.github.io/LISQM/projects/psychobox.html) calls **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (ECMA-418-2:2022 (2nd ed.)) ### Results checked against another project - [ecma418-torch](https://zhenxianli.github.io/LISQM/projects/ecma418-torch.html) against **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** (ECMA-418-2:2025 (4th ed.)) ### Same contributor - **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** and **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** (Mike Lotinga) On the map without a line, as no relation to another project listed for Sottek Hearing Model roughness is recorded for them: [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html). ## Implementations | Project | Language | Edition | Functions | Validation (as stated) | Notes | |---|---|---|---|---|---| | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** | MATLAB | [ECMA-418-2:2025 (4th ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf) (since v2.0) | `Roughness_ECMA418_2` | compared with ArtemiS SUITE (HEAD acoustics) | Amended to the 4th edition in November 2025. | | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** | MATLAB | [ECMA-418-2:2024 (3rd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_3rd_edition_december_2024.pdf) (with binaural combination; since v1.3) | `Roughness_ECMA418_2` | compared with ArtemiS SUITE (HEAD acoustics) | In v1.3; v2.0 follows the 4th edition. | | **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** | Python | [ECMA-418-2:2022 (2nd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_2nd_edition_december_2022.pdf) (since 1.2.0) | `roughness_ecma` | standard or paper data; also compared with ArtemiS SUITE (HEAD acoustics) | The documentation still lists it as under development. An open pull request (#95) fixes the low-pass filter range, which caused discrepancies with SQAT for time-varying signals. | | **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** | Python | [ECMA-418-2:2025 (4th ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf) (with combined binaural output; since 0.1.9) | `shm_roughness_ecma` | standard or paper data (reference signal and one recording); also compared with ArtemiS SUITE (HEAD acoustics) | — | | [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) | MATLAB, Python | [ECMA-418-2:2025 (4th ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf) | `acousticSHMRoughness` | compared with ArtemiS SUITE (HEAD acoustics) | — | | [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html) | C, Python | [ECMA-418-2:2025 (4th ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf) (mono or stereo; optional entropy weighting not applied; since 0.2.0) | `roughness_ecma` | compared with SQAT (its source) | Newly released project, not yet seen to be widely used. Uses the standard's 20 ms grid and nominal calibration factor, where SQAT uses a slightly adjusted calibration. | | [ecma418-torch](https://zhenxianli.github.io/LISQM/projects/ecma418-torch.html) | Python | [ECMA-418-2:2025 (4th ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf) (with binaural combination; without the optional entropy weighting of Section 7.1.6) | `roughness` | compared with sottek-hearing-model and ArtemiS SUITE (HEAD acoustics) | Newly released project, not yet seen to be widely used. | | [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | Python | [ECMA-418-2:2025 (4th ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf) (mono only; no entropy weighting; since 3.1.0) | `roughness_ecma` | standard or paper data (calibration signal only) | Newly released project, not yet seen to be widely used. | | [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html) | C# | [ECMA-418-2:2022 (2nd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_2nd_edition_december_2022.pdf) | `Sq.RoughnessEcma` | compared with MoSQITo (its source) | Newly released project, not yet seen to be widely used. | Also available through tools that call one of these implementations: [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) (via sottek-hearing-model, ECMA-418-2:2025 (4th ed.)), [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) (via sottek-hearing-model, ECMA-418-2:2025 (4th ed.)), and [PsychoBox](https://zhenxianli.github.io/LISQM/projects/psychobox.html) (via MoSQITo, ECMA-418-2:2022 (2nd ed.)). **See also:** [Roughness, Daniel & Weber model](https://zhenxianli.github.io/LISQM/metrics/roughness-daniel-weber.html), [Loudness from the Sottek Hearing Model (ECMA-418-2)](https://zhenxianli.github.io/LISQM/metrics/loudness-ecma-418-2.html) ## How they were validated As reported by each project; LISQM has not run the code. Two implementations that agree can still share the same error. - **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, ECMA-418-2:2025 (4th ed.): compared with ArtemiS SUITE (HEAD acoustics) - Ported or adapted from [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (the author's own code). - Checked for the 4th edition for the dependence of the roughness of AM tones on modulation frequency, and against reference results from HEAD acoustics ArtemiS SUITE 17.1 (named in the source of SQAT's validation page) for a binaural recording of a train station. - **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, ECMA-418-2:2024 (3rd ed.): compared with ArtemiS SUITE (HEAD acoustics) - Ported or adapted from [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (the author's own code). - Checked for the dependence of the roughness of AM tones on modulation frequency, and against reference results from HEAD acoustics ArtemiS SUITE 15.7 (named in the source of SQAT's validation page) for a binaural recording of a train station. - **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**, ECMA-418-2:2022 (2nd ed.): standard or paper data; also compared with ArtemiS SUITE (HEAD acoustics) - A unit test checks the standard's reference signal (1 kHz tone, 100 % amplitude-modulated at 70 Hz, 60 dB), which should give 1 asper, within ±0.1 asper. - A validation script compares the specific roughness of amplitude-modulated tones (carriers from 125 Hz to 4 kHz, 65 dB) with values computed in HEAD acoustics ArtemiS SUITE, within ±10 %. - **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)**, ECMA-418-2:2025 (4th ed.): standard or paper data (reference signal and one recording); also compared with ArtemiS SUITE (HEAD acoustics) - Ported or adapted from [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (the author's own code). - Unit tests check the standard's reference signal, which should give 1 asper_HMS, at 48 and 44.1 kHz. - RefMap's verification against ArtemiS v17.1, as for loudness. - **Checked by the maintainer of LISQM:** In personal use, Zhenxian LI found its results in very good agreement with those of HEAD acoustics ArtemiS SUITE. This is a personal check, not a published comparison. - [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html), ECMA-418-2:2025 (4th ed.): compared with ArtemiS SUITE (HEAD acoustics) - Verified against HEAD acoustics ArtemiS v17.1 with the same three signals as loudness. - [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html), ECMA-418-2:2025 (4th ed.): 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. - The project says that detailed validation and reference comparisons are kept outside the repository; the results are not published. - [ecma418-torch](https://zhenxianli.github.io/LISQM/projects/ecma418-torch.html), ECMA-418-2:2025 (4th ed.): compared with **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** and ArtemiS SUITE (HEAD acoustics) - The 1 kHz tone amplitude-modulated at 70 Hz (60 dB SPL) gives 0.9999987 asper for 10 s (the test allows 1e-4 around 1), and the average specific roughness in band 17 is 0.37348, against 0.374 from ArtemiS v17 as quoted in the tests of sottek-hearing-model. - Against sottek-hearing-model run as an oracle on three signals (the calibration tone, noise and a mixture of modulated tones and noise), the time-dependent values differ by at most 2e-5 asper and the single values by at most 2e-5; the README traces the residual to the rounded filter coefficients. - The tests also check that two identical channels give the mono result and that input at 44.1 kHz gives the 48 kHz result within 0.2 %. - [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html), ECMA-418-2:2025 (4th ed.): standard or paper data (calibration signal only) - Checked at the calibration signal only. - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) (via sottek-hearing-model), ECMA-418-2:2025 (4th ed.): own tests only - Tests, which run only where sottek-hearing-model is installed (the project's continuous integration does not install it), check that the wrapper returns what a direct call of the package gives. - [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html), ECMA-418-2:2022 (2nd ed.): compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (its source) - Ported or adapted from **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**. It was compared with the code it was ported from, which checks the port only. - Every public function is compared with the output of Python MoSQITo for seven WAV files (three of them ISO 532-1 test signals), within 1 % (0.5 dB for levels); MoSQITo's unit tests are ported too. - [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) (via sottek-hearing-model), 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. Not stated by PsychoBox. ## Before you compare numbers Implementations of the same metric can give different numbers without either being wrong. Check these choices first. - **Edition.** Compare implementations of the same edition: MoSQITo, Mosqito.NET and tools that call MoSQITo follow the 2nd edition, the others the 3rd or 4th. - **Overall value.** The single value is the 90th percentile of the time-dependent roughness after the first 320 ms. NumPy's percentile (sottek-hearing-model) and MATLAB's `prctile` (RefMap, SQAT) interpolate differently, so single values can differ slightly. - **Calibration and time grid.** SQAT uses a slightly adjusted calibration factor and a time grid that ends at the signal duration; MetaSona uses the standard's nominal factor (0.0180685) and its 20 ms grid. - **Binaural.** Two channels can be combined into one binaural value; per-channel and combined values differ. What the projects state: - **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**: The single value is the 90th percentile from MATLAB's `prctile`, which interpolates; the other statistics take the nearest rank (`get_exceeded_value`). The first `time_skip` seconds are left out; the code enforces at least 320 ms (it cites ECMA-418-2:2025, Section 7.1.8). - **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)**: Input at other sample rates is resampled to 48 kHz. Overall roughness and fluctuation strength are 90th percentiles computed with NumPy (linear interpolation, Hyndman–Fan type 7). The MATLAB code it was translated from uses `prctile`, which interpolates differently, so single values can differ slightly from RefMap and SQAT. - [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html): Expects calibrated sound pressure in pascals. The C functions require 48 kHz input; the Python interface resamples other rates to 48 kHz (SciPy `resample_poly`). `time_skip_s` (default 0 s) leaves out the start of the signal from the reported frames; the computation still runs over the whole signal. Time-varying results include every complete frame, labelled at frame centres, which differs from SQAT's handling of the last frame and of time stamps. - [ecma418-torch](https://zhenxianli.github.io/LISQM/projects/ecma418-torch.html): Input at other sample rates is resampled to 48 kHz (band-limited, by the Fourier method). The single value is the 90th percentile from `torch.quantile` (linear interpolation) of the time-dependent values, after the first 16 (roughness) or 36 (fluctuation strength) values at 50 Hz are left out. The outer and middle ear filter uses the coefficients as printed in Table 1 of the standard, where sottek-hearing-model uses unrounded ones. - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html): For the ECMA-418-2 metrics, `vs_rpm` takes by default the mean of the loudness and the tonality in each speed bin, the tonality only above 0.02 tu_HMS, and the 90th percentile of the roughness, after about 0.3 s (0.6 s for SQAT's tonality). Input in any unit is turned into sound pressure in Pa by an explicit calibration factor and resampled to 48 kHz. - [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html): Time-varying loudness and ECMA-418-2 roughness resample input at any other rate to 48 kHz, and stationary loudness resamples rates below 48 kHz; MoSQITo rejects rates above 48 kHz for time-varying loudness. ## References 1. ECMA-418-2:2020 (1st ed.). Psychoacoustic metrics for ITT equipment — Part 2 (models based on human perception). https://ecma-international.org/wp-content/uploads/ECMA-418-2_1st_edition_december_2020.pdf 2. ECMA-418-2:2022 (2nd ed.). Psychoacoustic metrics for ITT equipment — Part 2 (models based on human perception). https://ecma-international.org/wp-content/uploads/ECMA-418-2_2nd_edition_december_2022.pdf 3. ECMA-418-2:2024 (3rd ed.). Psychoacoustic metrics for ITT equipment — Part 2 (methods for describing human perception based on the Sottek Hearing Model). https://ecma-international.org/wp-content/uploads/ECMA-418-2_3rd_edition_december_2024.pdf 4. ECMA-418-2:2025 (4th ed.). Psychoacoustic metrics for ITT equipment — Part 2 (methods for describing human perception based on the Sottek Hearing Model). https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf --- # Roughness, DIN 38455 > 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/metrics/roughness-din-38455.html **Quantity:** Roughness · **Unit:** asper · **Also known as:** DIN 38455, Rauigkeit, German roughness standard DIN 38455:2024 is the first German standard for calculating roughness. Its text is not freely available, and the model it specifies could not be confirmed from public sources; a hearing-model roughness was proposed for DIN standardisation by Sottek & Becker (2019). The current edition is DIN 38455:2024. No open-source implementation of it has been found. ## Editions and who implements them | Date | Edition | Status | What changed | Implemented by | |---|---|---|---|---| | 2024-11 | [DIN 38455:2024](https://www.dinmedia.de/en/standard/din-38455/376186532) | current | First edition. | — | ## Implementations No open-source implementation has been found yet. If you know one, please [open an issue](https://github.com/ZhenxianLi/LISQM/issues/new/choose). **See also:** [Roughness from the Sottek Hearing Model (ECMA-418-2)](https://zhenxianli.github.io/LISQM/metrics/roughness-ecma-418-2.html), [Roughness, Daniel & Weber model](https://zhenxianli.github.io/LISQM/metrics/roughness-daniel-weber.html) ## References 1. DIN 38455:2024. Berechnung der Hörempfindung Rauigkeit (Calculation of the auditory sensation of roughness). https://www.dinmedia.de/en/standard/din-38455/376186532 --- # Fluctuation strength, Osses et al. model and Fastl & Zwicker formula > 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/metrics/fluctuation-strength-osses.html **Quantity:** Fluctuation strength · **Unit:** vacil · **Also known as:** fluctuation strength, vacil, Osses 2016, Fastl and Zwicker fluctuation strength Fluctuation strength describes slow modulation around 4 Hz. Osses, García & Kohlrausch (2016) proposed a signal-based model; Fastl & Zwicker give a closed-form expression for modulated tones and noises. Neither is standardised. ECMA-418-2:2025 added a hearing-model method, listed on its own page. There is no standard; the reference model is Osses et al. (2016). Open-source implementations of it: **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (MATLAB), [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) (Python; newly released, not yet seen to be widely used), [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html) (Julia; newly released, not yet seen to be widely used), [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) (Python; developing), and [fluctuation-strength-TUe](https://zhenxianli.github.io/LISQM/projects/fluctuation-strength-tue.html) (MATLAB; legacy, no commit since 2020-01). Implementations of earlier editions or related models: [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) (Python; newly released, not yet seen to be widely used; Fastl & Zwicker (2007); closed-form expression for amplitude-modulated noise) and [PsychoacousticParametersMeasurer](https://zhenxianli.github.io/LISQM/projects/psychoacoustic-parameters-measurer.html) (Python; legacy, no commit since 2021-06; Fastl & Zwicker (2007); Zwicker & Fastl formula). ## Editions and who implements them | Date | Edition | Status | What changed | Implemented by | |---|---|---|---|---| | 2016 | [Osses et al. (2016)](https://doi.org/10.1121/2.0000410) | published | Signal-based model. | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html), [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html), [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html), [fluctuation-strength-TUe](https://zhenxianli.github.io/LISQM/projects/fluctuation-strength-tue.html) | | 2007 | [Fastl & Zwicker (2007)](https://doi.org/10.1007/978-3-540-68888-4) | published | Closed-form expression for amplitude- and frequency-modulated sounds. | [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html), [PsychoacousticParametersMeasurer](https://zhenxianli.github.io/LISQM/projects/psychoacoustic-parameters-measurer.html) | ## Project map The lines of the project map for fluctuation strength (Osses et al.) only, between the projects listed for it (the whole map: https://zhenxianli.github.io/LISQM/projects/map.md). Agreement between a project and the code it was ported or adapted from only checks the port. ### Ported or adapted from another project - From **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**: [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) (Osses et al. (2016)) ### The author's own code - From [fluctuation-strength-TUe](https://zhenxianli.github.io/LISQM/projects/fluctuation-strength-tue.html) (Alejandro Osses): **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (Osses et al. (2016)) ### Results checked against another project - [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) against **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (Osses et al. (2016)) - [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html) against **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (Osses et al. (2016)) On the map without a line, as no relation to another project listed for fluctuation strength (Osses et al.) is recorded for them: [PsychoacousticParametersMeasurer](https://zhenxianli.github.io/LISQM/projects/psychoacoustic-parameters-measurer.html). ## Implementations | Project | Language | Edition | Functions | Validation (as stated) | Notes | |---|---|---|---|---|---| | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** | MATLAB | [Osses et al. (2016)](https://doi.org/10.1121/2.0000410) (since v1.0) | `FluctuationStrength_Osses2016`, `FluctuationStrength_Osses2016_from_wavfile` | standard or paper data | Alejandro Osses's `FluctuationStrength_TUe.m` (TU/e, 2014–2016), taken into SQAT in 2020 and modified there by Osses since 2023. | | [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | Python | [Osses et al. (2016)](https://doi.org/10.1121/2.0000410) (since 3.1.0) | `fluctuation_strength` | standard or paper data; also compared with SQAT | Newly released project, not yet seen to be widely used. | | [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html) | Julia | [Osses et al. (2016)](https://doi.org/10.1121/2.0000410) (since 0.3.0) | `fluctuation_strength_osses` | reference code: SQAT | Newly released project, not yet seen to be widely used. | | [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | Python | [Fastl & Zwicker (2007)](https://doi.org/10.1007/978-3-540-68888-4) (closed-form expression for amplitude-modulated noise; since 3.1.0) | `fluctuation_strength_am_noise` | standard or paper data | Newly released project, not yet seen to be widely used. | | [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) | Python | [Osses et al. (2016)](https://doi.org/10.1121/2.0000410) | `FluctuationStrength_Osses2016` | compared with SQAT (its source) | Developing project: no publication or documented use by others. No licence file: by default, copying, changing or sharing the code needs the author's permission. | | [fluctuation-strength-TUe](https://zhenxianli.github.io/LISQM/projects/fluctuation-strength-tue.html) | MATLAB | [Osses et al. (2016)](https://doi.org/10.1121/2.0000410) (since 1.0) | `FluctuationStrength_TUe` | standard or paper data | Legacy project, no longer maintained. No licence file: by default, copying, changing or sharing the code needs the author's permission. | | [PsychoacousticParametersMeasurer](https://zhenxianli.github.io/LISQM/projects/psychoacoustic-parameters-measurer.html) | Python | [Fastl & Zwicker (2007)](https://doi.org/10.1007/978-3-540-68888-4) (Zwicker & Fastl formula) | `acousticFluctuation`, `fmoddetection` | not stated | Legacy project, no longer maintained. No licence file: by default, copying, changing or sharing the code needs the author's permission. The header cites Zwicker & Fastl, "Psychoacoustics: Facts and Models", without naming an edition. | **See also:** [Fluctuation strength from the Sottek Hearing Model (ECMA-418-2)](https://zhenxianli.github.io/LISQM/metrics/fluctuation-strength-ecma-418-2.html) ## How they were validated As reported by each project; LISQM has not run the code. Two implementations that agree can still share the same error. - **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, Osses et al. (2016): standard or paper data - Ported or adapted from [fluctuation-strength-TUe](https://zhenxianli.github.io/LISQM/projects/fluctuation-strength-tue.html) (the author's own code). - Checked against amplitude- and frequency-modulation dependences from the literature. - [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html), Osses et al. (2016): standard or paper data; also compared with **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** - Compared with the literature values in Table 1 of Osses et al. (2016): for amplitude-modulated 70 dB tones the Pearson correlation is about 0.98, within a factor of about 2.1 at every point. SQAT's `FluctuationStrength_Osses2016` was consulted as a numeric reference for the shape of the sweep. - Validated for amplitude modulation only; a steady 1 kHz tone reads about 0.09 vacil. - [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html), Osses et al. (2016): reference code: **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** - Cross-checked against SQAT's `FluctuationStrength_Osses2016`, run under Octave, on identical signals: 26 cases, including all 18 points of Fastl & Zwicker's AM/FM reference grid (Osses 2018 thesis, Table B.1), each reproduced to a relative tolerance of 1e-6 (measured 3e-9). - The grid stimuli are synthesised following the Osses et al. (2016) validation files that SQAT's own validation reads; the tests also check that each synthetic stimulus gives the value SQAT gives on the real file (tones to 5e-3, noise to 25 % across random draws). - Against the published curves, 11 of the 18 points are within 30 %, and exactly those 11 are gated. The other seven are misses of the reference model itself (FM tones with a modulation frequency above 4 Hz overestimated three- to fourfold, thesis §B.4.1; the shoulder and tail points of AM tones and noise), which SQAT's own validation figures also show. - [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html), Fastl & Zwicker (2007): standard or paper data - A conformance row checks Eq. (10.2) of Fastl & Zwicker for amplitude-modulated broadband noise. - [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html), Osses et al. (2016): 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. - [fluctuation-strength-TUe](https://zhenxianli.github.io/LISQM/projects/fluctuation-strength-tue.html), Osses et al. (2016): standard or paper data - `demos/demo_osses2016a.m` reproduces the figures of the paper with the included stimuli (AM and FM tones, AM noise and excerpts of real sounds). Not stated by PsychoacousticParametersMeasurer. ## Before you compare numbers Implementations of the same metric can give different numbers without either being wrong. Check these choices first. - **Sample rate.** The model's envelope filters exist for 44.1 and 48 kHz: SQAT resamples other rates, PsychoacousticMetrics.jl rejects them. - **Steady sounds.** The model is meant for modulated sounds; a steady tone does not give exactly zero (phonometry reports about 0.09 vacil for a 1 kHz tone). What the projects state: - **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**: Statistics such as N5 take the nearest rank of the sorted time series, without interpolation (`get_exceeded_value`), and leave out the first `time_skip` seconds of the signal. - [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html): Needs audio at 44.1 or 48 kHz (an error otherwise); SQAT resamples other rates itself. ## References 1. Fastl, H., & Zwicker, E. (2007). *Psychoacoustics: Facts and models* (3rd ed.). Springer. https://doi.org/10.1007/978-3-540-68888-4 2. Osses Vecchi, A., García León, R., & Kohlrausch, A. (2016). Modelling the sensation of fluctuation strength. *Proceedings of Meetings on Acoustics*, 28, 050005. https://doi.org/10.1121/2.0000410 --- # Fluctuation strength from the Sottek Hearing Model (ECMA-418-2) > 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/metrics/fluctuation-strength-ecma-418-2.html **Quantity:** Fluctuation strength · **Unit:** vacil_HMS · **Also known as:** ECMA-418-2 fluctuation strength, vacil_HMS, Sottek fluctuation strength Fluctuation strength from the Sottek Hearing Model, new in the 4th edition of ECMA-418-2 (June 2025, Clause 9). It uses high-resolution spectral analysis for modulation rates of about 0.25 to 20 Hz. The current edition is ECMA-418-2:2025 (4th ed.). Open-source implementations of it: **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (MATLAB; PR, not merged), **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** (Python; needs at least 1.37 s of signal; binaural option; unreleased), [ecma418-torch](https://zhenxianli.github.io/LISQM/projects/ecma418-torch.html) (Python; newly released, not yet seen to be widely used; with binaural combination), and [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) (Python; newly released, not yet seen to be widely used; mono only). So far, only newly released projects, not yet seen to be widely used in the community, have released an implementation of it. Check their validation before relying on them. ## Editions and who implements them | Date | Edition | Status | What changed | Implemented by | |---|---|---|---|---| | 2025-06 | [ECMA-418-2:2025 (4th ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf) | current | New Clause 9. | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (PR), **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** (unreleased), [ecma418-torch](https://zhenxianli.github.io/LISQM/projects/ecma418-torch.html), [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | ## Project map The lines of the project map for Sottek Hearing Model fluctuation strength only, between the projects listed for it (the whole map: https://zhenxianli.github.io/LISQM/projects/map.md). ### Results checked against another project - [ecma418-torch](https://zhenxianli.github.io/LISQM/projects/ecma418-torch.html) against **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** (ECMA-418-2:2025 (4th ed.)) ### Same contributor - **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** and **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** (Mike Lotinga) On the map without a line, as no relation to another project listed for Sottek Hearing Model fluctuation strength is recorded for them: [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html). ## Implementations | Project | Language | Edition | Functions | Validation (as stated) | Notes | |---|---|---|---|---|---| | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** | MATLAB | [ECMA-418-2:2025 (4th ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf) | `FluctuationStrength_ECMA418_2` | not stated | PR (https://github.com/ggrecow/SQAT/pull/78). Open pull request since 2026-09-17. | | **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** | Python | [ECMA-418-2:2025 (4th ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf) (needs at least 1.37 s of signal; binaural option) | `shm_fluctuation_ecma` | compared with refmap-psychoacoustics (its source) and ArtemiS SUITE (HEAD acoustics) | Unreleased. Merged on 2026-09-18. Five departures from the printed text are documented (four equations and one interpretation of Section 9.1.8). | | [ecma418-torch](https://zhenxianli.github.io/LISQM/projects/ecma418-torch.html) | Python | [ECMA-418-2:2025 (4th ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf) (with binaural combination) | `fluctuation_strength` | compared with sottek-hearing-model and ArtemiS SUITE (HEAD acoustics) | Newly released project, not yet seen to be widely used. | | [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | Python | [ECMA-418-2:2025 (4th ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf) (mono only; since 3.3.0) | `fluctuation_strength_ecma` | standard or paper data (calibration signal only) | Newly released project, not yet seen to be widely used. Misprints found in Clause 9 are listed in the project's errata. | **See also:** [Fluctuation strength, Osses et al. model and Fastl & Zwicker formula](https://zhenxianli.github.io/LISQM/metrics/fluctuation-strength-osses.html), [Loudness from the Sottek Hearing Model (ECMA-418-2)](https://zhenxianli.github.io/LISQM/metrics/loudness-ecma-418-2.html) ## How they were validated As reported by each project; LISQM has not run the code. Two implementations that agree can still share the same error. - **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)**, ECMA-418-2:2025 (4th ed.): compared with [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (its source) and ArtemiS SUITE (HEAD acoustics) - Ported or adapted from [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (the author's own code). It was compared with the code it was ported from, which checks the port only. - A draft report (18 September 2026) compares it with `acousticSHMFluctuation.m`, the MATLAB code it was translated from: equal to floating-point precision on the synthetic signals and on one channel of each recording, with a small difference in a short time window on the other channel. - Against HEAD acoustics ArtemiS SUITE v17: 0.994 against 1.003 vacil_HMS for the calibration signal (the standard's target is 1.0), −8 % to +12 % for the overall values of three binaural recordings, and correlations of 0.91 to 0.998 for the time-dependent values. - **Checked by the maintainer of LISQM:** In personal use, Zhenxian LI found its results in very good agreement with those of HEAD acoustics ArtemiS SUITE. This is a personal check, not a published comparison. - [ecma418-torch](https://zhenxianli.github.io/LISQM/projects/ecma418-torch.html), ECMA-418-2:2025 (4th ed.): compared with **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** and ArtemiS SUITE (HEAD acoustics) - The 1 kHz tone amplitude-modulated at 4 Hz (60 dB SPL) gives 0.99579 vacil for 10 s (the test allows 1e-2 around 1), and the average specific fluctuation strength in band 17 is 0.38876, against 0.395 from ArtemiS v17 as quoted in the tests of sottek-hearing-model. - Against sottek-hearing-model run as an oracle on two signals: with that package's three choices, the time-dependent values differ by at most 6.3e-5 vacil and the single values by at most 6.3e-5; with the defaults, which follow the printed text, the single values differ by 0.2 % and 0.5 %. - [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html), ECMA-418-2:2025 (4th ed.): standard or paper data (calibration signal only) - Checked at the calibration signal only (0.993 vacil_HMS). Not stated by SQAT. ## Before you compare numbers Implementations of the same metric can give different numbers without either being wrong. Check these choices first. - **Overall value.** The single value is a 90th percentile of the time-dependent values after the filters have settled. NumPy (sottek-hearing-model) and MATLAB's `prctile` interpolate differently, by at most 0.0005 vacil_HMS on sottek-hearing-model's test signals. - **Interpretation.** Implementers report misprints and open questions in Clause 9 of the 2025 edition (phonometry's errata, sottek-hearing-model's documented departures), so implementations can differ until they are resolved. What the projects state: - **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)**: Input at other sample rates is resampled to 48 kHz. Overall roughness and fluctuation strength are 90th percentiles computed with NumPy (linear interpolation, Hyndman–Fan type 7). The MATLAB code it was translated from uses `prctile`, which interpolates differently, so single values can differ slightly from RefMap and SQAT. - [ecma418-torch](https://zhenxianli.github.io/LISQM/projects/ecma418-torch.html): Input at other sample rates is resampled to 48 kHz (band-limited, by the Fourier method). The single value is the 90th percentile from `torch.quantile` (linear interpolation) of the time-dependent values, after the first 16 (roughness) or 36 (fluctuation strength) values at 50 Hz are left out. The outer and middle ear filter uses the coefficients as printed in Table 1 of the standard, where sottek-hearing-model uses unrounded ones. By default it follows the printed text in three places where sottek-hearing-model decides otherwise: the step limit of Formula (152) (2e-4 Hz, against 0.2), no fundamental required for an assumed order in Section 9.1.8, and machine epsilon for ε0 (against 1e-12). The options `newton_cap` and `require_fundamental` give sottek-hearing-model's choices. Formula (127) is computed with π instead of the printed 2π in the phase term, and Formula (144) without the printed "− 1", which the code says would shift every rate down one bin. ## References 1. ECMA-418-2:2025 (4th ed.). Psychoacoustic metrics for ITT equipment — Part 2 (methods for describing human perception based on the Sottek Hearing Model). https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf --- # Tonality, Aures/Terhardt model > 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/metrics/tonality-aures.html **Quantity:** Tonality · **Unit:** t.u. · **Also known as:** Aures tonality, Terhardt tonality, tonality units, t.u., sensory euphony Tonality from Aures (1985): tonal components are extracted with the method of Terhardt, Stoll & Seewann (1982), weighted, and related to the loudness of the whole sound. Not standardised. There is no standard; the reference model is Aures (1985b). Open-source implementations of it: **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (MATLAB), **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (Python; PR, not merged), [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html) (C, Python; newly released, not yet seen to be widely used), and [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) (Python; developing). SQAT corrected several issues in September 2026, released in v2.0 (for example, the level excess of only one tonal component, the last positive one, entered the result, combined with the first component's frequency and bandwidth), which changes results compared with SQAT v1.3 and earlier. ## Editions and who implements them | Date | Edition | Status | What changed | Implemented by | |---|---|---|---|---| | 1985 | [Aures (1985b)](https://zhenxianli.github.io/LISQM/standards.html#ref-aures-1985-euphony) | published | Tonality model. | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (PR), [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html), [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) | | 1982 | [Terhardt et al. (1982)](https://doi.org/10.1121/1.387544) | published | Extraction of tonal components used by the model. | — | ## Project map The lines of the project map for tonality (Aures) only, between the projects listed for it (the whole map: https://zhenxianli.github.io/LISQM/projects/map.md). Agreement between a project and the code it was ported or adapted from only checks the port. ### Ported or adapted from another project - From **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**: [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html) (Aures (1985b)); [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) (Aures (1985b)) On the map without a line, as no relation to another project listed for tonality (Aures) is recorded for them: **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**. ## Implementations | Project | Language | Edition | Functions | Validation (as stated) | Notes | |---|---|---|---|---|---| | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** | MATLAB | [Aures (1985b)](https://zhenxianli.github.io/LISQM/standards.html#ref-aures-1985-euphony) (since v1.0) | `Tonality_Aures1985`, `Tonality_Aures1985_from_wavfile` | standard or paper data | v2.0 fixes eight defects (issue #67; for example, only one tonal component's level excess entered the result, and tones were removed from the wrong spectrum), so results differ from v1.x. | | **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** | Python | [Aures (1985b)](https://zhenxianli.github.io/LISQM/standards.html#ref-aures-1985-euphony) | — | not stated | PR (https://github.com/Eomys/MoSQITo/pull/97). Pull request from April 2026 following the improved Aures metric of Estreder et al. (2023); no maintainer reply. | | [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html) | C, Python | [Aures (1985b)](https://zhenxianli.github.io/LISQM/standards.html#ref-aures-1985-euphony) (since 0.1.0) | `tonality_aures` | compared with SQAT (its source) | Newly released project, not yet seen to be widely used. Follows SQAT's September 2026 revision (250 ms Hann windows, 125 ms hop). | | [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) | Python | [Aures (1985b)](https://zhenxianli.github.io/LISQM/standards.html#ref-aures-1985-euphony) | `Tonality_Aures1985` | compared with SQAT (its source) | Developing project: no publication or documented use by others. No licence file: by default, copying, changing or sharing the code needs the author's permission. A June 2026 commit corrected its calibration; it predates SQAT's September 2026 fixes. | **See also:** [Tonality from the Sottek Hearing Model (ECMA-418-2)](https://zhenxianli.github.io/LISQM/metrics/tonality-ecma-418-2.html) ## How they were validated As reported by each project; LISQM has not run the code. Two implementations that agree can still share the same error. - **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, Aures (1985b): standard or paper data - v2.0 has five validation scripts: a tone emerging from noise, compared with Fig. 1(a) of Hastings et al. (2003) (root mean square deviation 0.0129 t.u. over nine points); the extraction of tonal components and the level excess, compared with the intermediate values of an independent implementation (Zhang & Shrestha, 2003); the weightings of bandwidth and frequency, compared with Aures's Figs. 6 and 5; and the dependence on bandwidth, compared with Hastings's subjective data. - v1.3 is checked with one signal-to-noise comparison. - [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html), Aures (1985b): 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. - The project calls its source-based Python comparisons "development checks, not an executed MATLAB/Octave validation"; exact agreement with MATLAB is not established. - The results are not published. - [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html), Aures (1985b): 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. Not stated by MoSQITo. ## Before you compare numbers Implementations of the same metric can give different numbers without either being wrong. Check these choices first. What the projects state: - **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**: Statistics such as N5 take the nearest rank of the sorted time series, without interpolation (`get_exceeded_value`), and leave out the first `time_skip` seconds of the signal. - [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html): Expects calibrated sound pressure in pascals. The C functions require 48 kHz input; the Python interface resamples other rates to 48 kHz (SciPy `resample_poly`). `time_skip_s` (default 0 s) leaves out the start of the signal from the reported frames; the computation still runs over the whole signal. Time-varying results include every complete frame, labelled at frame centres, which differs from SQAT's handling of the last frame and of time stamps. ## References 1. Terhardt, E., Stoll, G., & Seewann, M. (1982). Algorithm for extraction of pitch and pitch salience from complex tonal signals. *The Journal of the Acoustical Society of America*, 71(3), 679–688. https://doi.org/10.1121/1.387544 2. Aures, W. (1985). Berechnungsverfahren für den sensorischen Wohlklang beliebiger Schallsignale [A model for calculating the sensory euphony of various sounds]. *Acustica*, 59, 130–141. --- # Tonality from the Sottek Hearing Model (ECMA-418-2) > 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/metrics/tonality-ecma-418-2.html **Quantity:** Tonality · **Unit:** tu_HMS · **Also known as:** ECMA-418-2 tonality, psychoacoustic tonality, tu_HMS, Sottek tonality, SHM tonality Psychoacoustic tonality from the Sottek Hearing Model, Clause 6 of ECMA-418-2, with specific tonality and tonal frequency over time. The method came from ECMA-74 (17th edition, 2019) when ECMA-418-2 was first published in 2020. The current edition is ECMA-418-2:2025 (4th ed.). Open-source implementations of it: **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (MATLAB), **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** (Python), [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (MATLAB, Python), [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html) (C, Python; newly released, not yet seen to be widely used; mono or stereo), and [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) (Python; newly released, not yet seen to be widely used; mono only). Implementations of earlier editions or related models: **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (MATLAB; ECMA-418-2:2024 (3rd ed.)). ## Editions and who implements them | Date | Edition | Status | What changed | Implemented by | |---|---|---|---|---| | 2025-06 | [ECMA-418-2:2025 (4th ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf) | current | Hearing-model and conformance updates (48 kHz sampling). | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)**, [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html), [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html), [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | | 2024-12 | [ECMA-418-2:2024 (3rd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_3rd_edition_december_2024.pdf) | superseded | Diffuse-field outer and middle ear filter added (affects all metrics); refinements mainly to roughness. | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** | | 2022-12 | [ECMA-418-2:2022 (2nd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_2nd_edition_december_2022.pdf) | superseded | Refined calculation. | — | | 2020-12 | [ECMA-418-2:2020 (1st ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_1st_edition_december_2020.pdf) | superseded | Clause 6 tonality. | — | | 2019-12 | [ECMA-74:2019 (17th ed.)](https://ecma-international.org/publications-and-standards/standards/ecma-74/) | superseded | Hearing model and tonality before ECMA-418-2 existed. | — | ## Project map The lines of the project map for Sottek Hearing Model tonality only, between the projects listed for it (the whole map: https://zhenxianli.github.io/LISQM/projects/map.md). Agreement between a project and the code it was ported or adapted from only checks the port. ### Ported or adapted from another project - From **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**: [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html) (ECMA-418-2:2025 (4th ed.)) ### The author's own code - From [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (Mike Lotinga): **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (ECMA-418-2:2025 (4th ed.) and ECMA-418-2:2024 (3rd ed.)); **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** (ECMA-418-2:2025 (4th ed.)) ### Used at run time - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) calls **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** (ECMA-418-2:2025 (4th ed.)) - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) calls **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (ECMA-418-2:2025 (4th ed.)) - [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) calls **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** (ECMA-418-2:2025 (4th ed.)) ### Same contributor - **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** and **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** (Mike Lotinga) On the map without a line, as no relation to another project listed for Sottek Hearing Model tonality is recorded for them: [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html). ## Implementations | Project | Language | Edition | Functions | Validation (as stated) | Notes | |---|---|---|---|---|---| | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** | MATLAB | [ECMA-418-2:2025 (4th ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf) (since v2.0) | `Tonality_ECMA418_2` | compared with ArtemiS SUITE (HEAD acoustics) | — | | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** | MATLAB | [ECMA-418-2:2024 (3rd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_3rd_edition_december_2024.pdf) (since v1.3) | `Tonality_ECMA418_2` | compared with ArtemiS SUITE (HEAD acoustics) | In v1.3; v2.0 follows the 4th edition. | | **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** | Python | [ECMA-418-2:2025 (4th ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf) (since 0.1.9) | `shm_tonality_ecma` | standard or paper data (reference signal and one recording); also compared with ArtemiS SUITE (HEAD acoustics) | Optional experimental tonal-annoyance weighting (Sottek & Becker, 2019) since 0.1.14. | | [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) | MATLAB, Python | [ECMA-418-2:2025 (4th ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf) | `acousticSHMTonality` | compared with ArtemiS SUITE (HEAD acoustics) | — | | [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html) | C, Python | [ECMA-418-2:2025 (4th ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf) (mono or stereo; since 0.2.0) | `tonality_ecma`, `ecma_tonal_analysis` | compared with SQAT (its source) | Newly released project, not yet seen to be widely used. | | [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | Python | [ECMA-418-2:2025 (4th ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf) (mono only; since 3.1.0) | `tonality_ecma` | standard or paper data (calibration signal only) | Newly released project, not yet seen to be widely used. | Also available through tools that call one of these implementations: [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) (via sottek-hearing-model, ECMA-418-2:2025 (4th ed.)) and [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) (via sottek-hearing-model, ECMA-418-2:2025 (4th ed.)). **See also:** [Tonality, Aures/Terhardt model](https://zhenxianli.github.io/LISQM/metrics/tonality-aures.html), [Tone-to-noise ratio and prominence ratio (ECMA-418-1)](https://zhenxianli.github.io/LISQM/metrics/tone-to-noise-prominence-ratio.html), [Loudness from the Sottek Hearing Model (ECMA-418-2)](https://zhenxianli.github.io/LISQM/metrics/loudness-ecma-418-2.html) ## How they were validated As reported by each project; LISQM has not run the code. Two implementations that agree can still share the same error. - **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, ECMA-418-2:2025 (4th ed.): compared with ArtemiS SUITE (HEAD acoustics) - Ported or adapted from [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (the author's own code). - Checked for the 4th edition against reference results from HEAD acoustics ArtemiS SUITE 17.1 (named in the source of SQAT's validation page) for a binaural recording of a train station. - A verification against Annex B.2 (PR #79) was merged and reverted on 2026-09-21 because the Annex B values of the 2025 edition appear to be out of date. - **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, ECMA-418-2:2024 (3rd ed.): compared with ArtemiS SUITE (HEAD acoustics) - Ported or adapted from [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (the author's own code). - Checked against reference results from HEAD acoustics ArtemiS SUITE 15.7 (named in the source of SQAT's validation page) for a binaural recording of a train station. - **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)**, ECMA-418-2:2025 (4th ed.): standard or paper data (reference signal and one recording); also compared with ArtemiS SUITE (HEAD acoustics) - Ported or adapted from [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (the author's own code). - Unit tests check the standard's reference signal, which should give 1 tu_HMS, at 48 and 44.1 kHz. - RefMap's verification against ArtemiS v17.1, as for loudness. - **Checked by the maintainer of LISQM:** In personal use, Zhenxian LI found its results in very good agreement with those of HEAD acoustics ArtemiS SUITE. This is a personal check, not a published comparison. - [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html), ECMA-418-2:2025 (4th ed.): compared with ArtemiS SUITE (HEAD acoustics) - Verified against HEAD acoustics ArtemiS v17.1 with the same three signals as loudness. - [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html), ECMA-418-2:2025 (4th ed.): 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. - The project says that detailed validation and reference comparisons are kept outside the repository; the results are not published. - [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html), ECMA-418-2:2025 (4th ed.): standard or paper data (calibration signal only) - Checked at the calibration signal only. - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) (via sottek-hearing-model), ECMA-418-2:2025 (4th ed.) (through sottek-hearing-model's shm_tonality_ecma): own tests only - Tests, which run only where sottek-hearing-model is installed (the project's continuous integration does not install it), check that the wrappers return what direct calls of the package give, that one speed bin reproduces the package's single values, and that the dominant tonal frequency of a tone in noise maps to its order. - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) (via SQAT), ECMA-418-2:2025 (4th ed.) (through SQAT v2.0's Tonality_ECMA418_2 in MATLAB): own tests only - Tests with a stub engine check the call passed to SQAT and the conversion of its output; the comparison with a direct SQAT call runs only where MATLAB and SQAT v2.0 are installed. - [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) (via sottek-hearing-model), 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. ## Before you compare numbers Implementations of the same metric can give different numbers without either being wrong. Check these choices first. - **Edition and start.** Compare implementations of the same edition; overall values leave out the first 304 ms, where the filters settle. - **Tonal annoyance weighting.** RefMap and sottek-hearing-model offer an optional weighting after Sottek & Becker (2019), which is not part of ECMA-418-2; leave it off when comparing with other implementations. What the projects state: - **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**: Statistics take the nearest rank of the sorted time series, without interpolation (`get_exceeded_value`), and leave out the first `time_skip` seconds; the code enforces at least 304 ms (it cites ECMA-418-2:2025, Section 8.1.4). - **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)**: Input at other sample rates is resampled to 48 kHz. - [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html): Expects calibrated sound pressure in pascals. The C functions require 48 kHz input; the Python interface resamples other rates to 48 kHz (SciPy `resample_poly`). `time_skip_s` (default 0 s) leaves out the start of the signal from the reported frames; the computation still runs over the whole signal. Time-varying results include every complete frame, labelled at frame centres, which differs from SQAT's handling of the last frame and of time stamps. - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html): For the ECMA-418-2 metrics, `vs_rpm` takes by default the mean of the loudness and the tonality in each speed bin, the tonality only above 0.02 tu_HMS, and the 90th percentile of the roughness, after about 0.3 s (0.6 s for SQAT's tonality). Input in any unit is turned into sound pressure in Pa by an explicit calibration factor and resampled to 48 kHz. ## References 1. ECMA-74:2019 (17th ed.). Measurement of airborne noise emitted by information technology and telecommunications equipment. https://ecma-international.org/publications-and-standards/standards/ecma-74/ 2. ECMA-418-2:2020 (1st ed.). Psychoacoustic metrics for ITT equipment — Part 2 (models based on human perception). https://ecma-international.org/wp-content/uploads/ECMA-418-2_1st_edition_december_2020.pdf 3. ECMA-418-2:2022 (2nd ed.). Psychoacoustic metrics for ITT equipment — Part 2 (models based on human perception). https://ecma-international.org/wp-content/uploads/ECMA-418-2_2nd_edition_december_2022.pdf 4. ECMA-418-2:2024 (3rd ed.). Psychoacoustic metrics for ITT equipment — Part 2 (methods for describing human perception based on the Sottek Hearing Model). https://ecma-international.org/wp-content/uploads/ECMA-418-2_3rd_edition_december_2024.pdf 5. ECMA-418-2:2025 (4th ed.). Psychoacoustic metrics for ITT equipment — Part 2 (methods for describing human perception based on the Sottek Hearing Model). https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf --- # Tone-to-noise ratio and prominence ratio (ECMA-418-1) > 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/metrics/tone-to-noise-prominence-ratio.html **Quantity:** Tonality · **Unit:** dB · **Also known as:** TNR, PR, ECMA-418-1, ECMA-74 Annex D, prominent discrete tones, ANSI S1.13 Annex Tone-to-noise ratio (TNR) and prominence ratio (PR) decide whether a discrete tone is prominent: TNR compares the tone with the noise in its critical band, PR compares the critical band with its neighbours. ECMA-418-1 took the method over from Annex D of ECMA-74 in 2020; its 3rd edition (2024) revised the TNR procedure. The current edition is ECMA-418-1:2024 (3rd ed.). Open-source implementations of it: [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) (Python; newly released, not yet seen to be widely used) and [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) (Python; newly released, not yet seen to be widely used; tones in a power spectrum, and orders of a rotating machine along a run-up). So far, only newly released projects, not yet seen to be widely used in the community, have released an implementation of it. Check their validation before relying on them. Implementations of earlier editions or related models: **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (Python; ECMA-74:2019 (17th ed.)), [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html) (C#; newly released, not yet seen to be widely used; ECMA-74:2019 (17th ed.)), and [MoSQITo-FDP](https://zhenxianli.github.io/LISQM/projects/mosqito-fdp.html) (Python; legacy, archived; ECMA-74:2019 (17th ed.); Annex D). ## Editions and who implements them | Date | Edition | Status | What changed | Implemented by | |---|---|---|---|---| | 2024-12 | [ECMA-418-1:2024 (3rd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-1_3rd_edition_december_2024.pdf) | current | TNR procedure revised for repeatable results across FFT resolutions; terms rewritten. | [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html), [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) | | 2022-12 | [ECMA-418-1:2022 (2nd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-1_2nd_edition_december_2022.pdf) | superseded | Maximum tone bandwidth for TNR set to 15 % of the critical band; corrections. | — | | 2020-12 | [ECMA-418-1:2020 (1st ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-1_1st_edition_december_2020.pdf) | superseded | Based on, and mostly identical to, ECMA-74 Annex D. | — | | 2019-12 | [ECMA-74:2019 (17th ed.)](https://ecma-international.org/publications-and-standards/standards/ecma-74/) | superseded | Annex D, before ECMA-418-1 existed. | **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**, [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html), [MoSQITo-FDP](https://zhenxianli.github.io/LISQM/projects/mosqito-fdp.html) | ## Project map The lines of the project map for tone-to-noise ratio and prominence ratio only, between the projects listed for it (the whole map: https://zhenxianli.github.io/LISQM/projects/map.md). Agreement between a project and the code it was ported or adapted from only checks the port. ### Ported or adapted from another project - From **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**: [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html) (ECMA-74:2019 (17th ed.)); [MoSQITo-FDP](https://zhenxianli.github.io/LISQM/projects/mosqito-fdp.html) (ECMA-74:2019 (17th ed.)) ### Results checked against another project - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) against **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (ECMA-418-1:2024 (3rd ed.)) ### Same contributor - **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** and [MoSQITo-FDP](https://zhenxianli.github.io/LISQM/projects/mosqito-fdp.html) (Daniel Jiménez-Caminero Costa) On the map without a line, as no relation to another project listed for tone-to-noise ratio and prominence ratio is recorded for them: [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html). ## Implementations | Project | Language | Edition | Functions | Validation (as stated) | Notes | |---|---|---|---|---|---| | **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** | Python | [ECMA-74:2019 (17th ed.)](https://ecma-international.org/publications-and-standards/standards/ecma-74/) (since 1.0.2) | `tnr_ecma_st`, `tnr_ecma_perseg`, `tnr_ecma_freq`, `pr_ecma_st`, `pr_ecma_perseg`, `pr_ecma_freq` | not stated | Docstrings say "ECMA 418-1" without an edition; the helper code and the bibliography cite ECMA-74 Annex D (17th edition, 2019). | | [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | Python | [ECMA-418-1:2024 (3rd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-1_3rd_edition_december_2024.pdf) (since 3.1.0) | `tone_to_noise_ratio`, `prominence_ratio`, `assess_tones` | standard or paper data (formula examples; no published TNR or PR value) | Newly released project, not yet seen to be widely used. The "prominent" flag applies the numeric criterion only. | | [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) | Python | [ECMA-418-1:2024 (3rd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-1_3rd_edition_december_2024.pdf) (tones in a power spectrum, and orders of a rotating machine along a run-up; since 0.5.0) | `rota.tonal.tone_prominence`, `rota.tonal.order_prominence`, `rota.tonal.prominence_criterion` | standard or paper data (formula examples; no published TNR or PR value); also compared with MoSQITo | Newly released project, not yet seen to be widely used. The "prominent" flag applies the numeric criterion only; the aural check of audibility (Sections 11.8 and 12.8) is not assessed. | | [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html) | C# | [ECMA-74:2019 (17th ed.)](https://ecma-international.org/publications-and-standards/standards/ecma-74/) | `Sq.TnrEcmaSt`, `Sq.TnrEcmaFreq`, `Sq.TnrEcmaPerSeg`, `Sq.PrEcmaSt`, `Sq.PrEcmaFreq`, `Sq.PrEcmaPerSeg` | compared with MoSQITo (its source) | Newly released project, not yet seen to be widely used. The README cites ECMA-74 Annex D. | | [MoSQITo-FDP](https://zhenxianli.github.io/LISQM/projects/mosqito-fdp.html) | Python | [ECMA-74:2019 (17th ed.)](https://ecma-international.org/publications-and-standards/standards/ecma-74/) (Annex D) | `comp_tnr`, `comp_pr` | own tests only | Legacy project, no longer maintained. | **See also:** [Tonality from the Sottek Hearing Model (ECMA-418-2)](https://zhenxianli.github.io/LISQM/metrics/tonality-ecma-418-2.html), [Audibility of tones in noise (ISO/TS 20065)](https://zhenxianli.github.io/LISQM/metrics/tonal-audibility-iso-20065.html) ## How they were validated As reported by each project; LISQM has not run the code. Two implementations that agree can still share the same error. - **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**, ECMA-74:2019 (17th ed.): not stated - The documentation marks it as available but not validated. - [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html), ECMA-418-1:2024 (3rd ed.): standard or paper data (formula examples; no published TNR or PR value) - Tests check worked examples printed in ECMA-418-1:2024: the critical band at 500 Hz and 1 kHz (Clause 10, Formula 2), its band edges at 1 kHz (Clause 12.2) and the proximity spacing at 150 and 850 Hz (Clause 11.6, Formula 14). - TNR and PR of a 1 kHz tone in white noise are compared with the values expected from the standard's formulas (within 0.4 dB for TNR and 0.1 dB for PR); no TNR or PR value published in the standard is checked. - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html), ECMA-418-1:2024 (3rd ed.): standard or paper data (formula examples; no published TNR or PR value); also compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** - Tests check worked examples printed in ECMA-418-1:2024: the critical bandwidth at 500 Hz and 1 kHz (Clause 10), the band edges at 1 kHz (Clause 12.2) and the proximity spacing at 150 and 850 Hz (Clause 11.6). The criteria are checked at 100 Hz, 1 kHz and 5 kHz. - TNR and PR of tones at 140 Hz, 1 kHz and 3 kHz in white noise are compared with the values that the standard's formulas give for the known tone and noise powers, within 0.5 dB; on spectra built line by line they agree to within 1e-9 dB for TNR and 0.03 dB for PR. No TNR or PR value published in the standard is checked. - For an order in a synthetic run-up, `order_prominence` gives the TNR within 1 dB of the analytic value in every speed bin, with a mean error below 0.4 dB. - A test compares the TNR of tones at 130 Hz to 4 kHz in flat noise with MoSQITo's `tnr_ecma_st` and requires agreement within 1.5 dB. MoSQITo follows ECMA-74:2019, so the comparison crosses editions. The test runs only where MoSQITo is installed, which the project's continuous integration does not do. - [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html), ECMA-74:2019 (17th ed.): compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (its source) - Ported or adapted from **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**. It was compared with the code it was ported from, which checks the port only. - Every public function is compared with the output of Python MoSQITo for seven WAV files (three of them ISO 532-1 test signals), within 1 % (0.5 dB for levels); MoSQITo's unit tests are ported too. - [MoSQITo-FDP](https://zhenxianli.github.io/LISQM/projects/mosqito-fdp.html), ECMA-74:2019 (17th ed.): own tests only - Ported or adapted from **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**. - The README lists TNR/PR as available but not validated; the tests use synthetic tones in white noise. ## Before you compare numbers Implementations of the same metric can give different numbers without either being wrong. Check these choices first. What the projects state: - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html): Input in any unit is turned into sound pressure in Pa by an explicit calibration factor and resampled to 48 kHz. `order_prominence` analyses orders on the order-tracked (angle-domain) spectrum, so that an order stays one spectral line in every frame of a run-up. The docstring and a test show that a fixed time window long enough for the resolution the standard asks for at low frequency spreads a fast-sweeping order over the band and biases its TNR low, by about 19 dB in the test case. Where the text of the 3rd edition is inconsistent, the module notes how it is read: the secondary tone is added in Formulae (A.7) and (A.8), the tone spacing is \|f_s − f_p\|, 500 Hz takes arithmetic centring, the criteria cover 89.1 Hz to 11 200 Hz, and the misprints of Formulae (21) and (23) are resolved with their Annex B counterparts. ## References 1. ECMA-74:2019 (17th ed.). Measurement of airborne noise emitted by information technology and telecommunications equipment. https://ecma-international.org/publications-and-standards/standards/ecma-74/ 2. ECMA-418-1:2020 (1st ed.). Psychoacoustic metrics for ITT equipment — Part 1 (prominent discrete tones). https://ecma-international.org/wp-content/uploads/ECMA-418-1_1st_edition_december_2020.pdf 3. ECMA-418-1:2022 (2nd ed.). Psychoacoustic metrics for ITT equipment — Part 1 (prominent discrete tones). https://ecma-international.org/wp-content/uploads/ECMA-418-1_2nd_edition_december_2022.pdf 4. ECMA-418-1:2024 (3rd ed.). Psychoacoustic metrics for ITT equipment — Part 1 (prominent discrete tones). https://ecma-international.org/wp-content/uploads/ECMA-418-1_3rd_edition_december_2024.pdf --- # Tonal components and tone adjustment (DIN 45681) > 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/metrics/tonality-din-45681.html **Quantity:** Tonality · **Unit:** dB · **Also known as:** DIN 45681, tone adjustment, K_T, Tonzuschlag German method that detects tonal components in noise from narrow-band spectra and derives a tone adjustment for the assessment of noise immissions. DIN 45681:2005, corrected by Berichtigung 2:2006-08 (which replaced Berichtigung 1:2005-08), is current. The current edition is DIN 45681:2005. No open-source implementation of it has been found. Implementations of earlier editions or related models: [ITA-Toolbox](https://zhenxianli.github.io/LISQM/projects/ita-toolbox.html) (MATLAB; E DIN 45681:2002-11; maximum tonal audibility and its frequency). ## Editions and who implements them | Date | Edition | Status | What changed | Implemented by | |---|---|---|---|---| | 2005-03 | [DIN 45681:2005](https://www.dinmedia.de/en/standard/din-45681/76463232) | current | Current; Berichtigung 2:2006-08 replaced Berichtigung 1:2005-08. | — | | 2002-11 | [E DIN 45681:2002-11](https://zhenxianli.github.io/LISQM/standards.html#ref-din-45681-2002-draft) | superseded | — | [ITA-Toolbox](https://zhenxianli.github.io/LISQM/projects/ita-toolbox.html) | ## Implementations | Project | Language | Edition | Functions | Validation (as stated) | Notes | |---|---|---|---|---|---| | [ITA-Toolbox](https://zhenxianli.github.io/LISQM/projects/ita-toolbox.html) | MATLAB | [E DIN 45681:2002-11](https://zhenxianli.github.io/LISQM/standards.html#ref-din-45681-2002-draft) (maximum tonal audibility and its frequency) | `ita_tonality` | not stated | The header cites "DIN 45681 (2002)", the draft that preceded DIN 45681:2005. A code comment says that no A-weighting is applied. | **See also:** [Audibility of tones in noise (ISO/TS 20065)](https://zhenxianli.github.io/LISQM/metrics/tonal-audibility-iso-20065.html) ## How they were validated As reported by each project; LISQM has not run the code. Two implementations that agree can still share the same error. None of these projects says how its code was validated. ## References 1. DIN (2002). *E DIN 45681:2002-11 (draft): Akustik — Bestimmung der Tonhaltigkeit von Geräuschen und Ermittlung eines Tonzuschlages für die Beurteilung von Geräuschimmissionen*. Beuth, Berlin. 2. DIN 45681:2005. Akustik — Bestimmung der Tonhaltigkeit von Geräuschen und Ermittlung eines Tonzuschlages für die Beurteilung von Geräuschimmissionen. https://www.dinmedia.de/en/standard/din-45681/76463232 --- # Audibility of tones in noise (ISO/TS 20065) > 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/metrics/tonal-audibility-iso-20065.html **Quantity:** Tonality · **Unit:** dB · **Also known as:** ISO/TS 20065, ISO/PAS 20065, tonal audibility, decisive audibility, ΔL_ta Engineering method for the audibility of tones in noise, from critical-band analysis of narrow-band spectra. First published as ISO/PAS 20065:2016 and turned into ISO/TS 20065:2022, which notes that the method is not validated below 50 Hz. The current edition is ISO/TS 20065:2022. No open-source implementation of it has been found. Implementations of earlier editions or related models: [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) (Python; newly released, not yet seen to be widely used; ISO/PAS 20065:2016). ## Editions and who implements them | Date | Edition | Status | What changed | Implemented by | |---|---|---|---|---| | 2022-12 | [ISO/TS 20065:2022](https://www.iso.org/standard/81518.html) | current | Technical specification; adds that the method is not validated below 50 Hz. | — | | 2016-07 | [ISO/PAS 20065:2016](https://www.iso.org/standard/66941.html) | withdrawn | Publicly available specification; withdrawn in 2022. | [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | ## Implementations | Project | Language | Edition | Functions | Validation (as stated) | Notes | |---|---|---|---|---|---| | [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | Python | [ISO/PAS 20065:2016](https://www.iso.org/standard/66941.html) (since 3.1.0) | `tone_audibility`, `analyze_spectrum`, `audibility_from_levels`, `mean_audibility`, `audibility_uncertainty` | standard or paper data; also compared with DIN 45681 Annex J reference program | Newly released project, not yet seen to be widely used. Follows the 2016 PAS, not the 2022 TS. Does not apply the A-weighting required by clause 5.3.2. DIN 45681 itself is not implemented. | **See also:** [Tonal components and tone adjustment (DIN 45681)](https://zhenxianli.github.io/LISQM/metrics/tonality-din-45681.html), [Tonal audibility in environmental noise (ISO 1996-2)](https://zhenxianli.github.io/LISQM/metrics/tonal-audibility-iso-1996-2.html) ## How they were validated As reported by each project; LISQM has not run the code. Two implementations that agree can still share the same error. - [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html), ISO/PAS 20065:2016: standard or paper data; also compared with DIN 45681 Annex J reference program - Reproduces the Annex E worked example. - Parts are checked against DIN 45681:2005 and its Annex J reference program. ## References 1. ISO/PAS 20065:2016. Acoustics — Objective method for assessing the audibility of tones in noise — Engineering method. https://www.iso.org/standard/66941.html 2. ISO/TS 20065:2022. Acoustics — Objective method for assessing the audibility of tones in noise — Engineering method. https://www.iso.org/standard/81518.html --- # Tonal audibility in environmental noise (ISO 1996-2) > 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/metrics/tonal-audibility-iso-1996-2.html **Quantity:** Tonality · **Unit:** dB · **Also known as:** ISO 1996-2 Annex C, ISO 1996-2 Annex J, ISO 1996-2 Annex K, tonal adjustment, environmental noise tonality Objective tonal audibility and tone adjustment for environmental noise assessment. ISO 1996-2:2007 gave a method in Annex C; ISO 1996-2:2017 replaced it with an engineering method (Annex J) and a survey method (Annex K). The current edition is ISO 1996-2:2017. Open-source implementations of it: **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (Python; Annex K prominent-tone detection; PR, not merged) and [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) (Python; newly released, not yet seen to be widely used; Annex K survey method and Table J.1; in the phonometry.environment namespace). So far, only newly released projects, not yet seen to be widely used in the community, have released an implementation of it. Check their validation before relying on them. Implementations of earlier editions or related models: [acoustic-toolbox](https://zhenxianli.github.io/LISQM/projects/acoustic-toolbox.html) (Python; ISO 1996-2:2007; tonal audibility and tonal adjustment), [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) (Python; newly released, not yet seen to be widely used; ISO 1996-2:2007; Annex C; in the phonometry.environment namespace), and [python-acoustics](https://zhenxianli.github.io/LISQM/projects/python-acoustics.html) (Python; legacy, archived; ISO 1996-2:2007; tonal audibility and tonal adjustment). ## Editions and who implements them | Date | Edition | Status | What changed | Implemented by | |---|---|---|---|---| | 2017-07 | [ISO 1996-2:2017](https://www.iso.org/standard/59766.html) | current; ISO Open Data (2026-09-30) links it to a successor project (ISO 86954), which has not been published yet. | Annex J engineering method and Annex K survey method. | **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (PR), [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | | 2007-03 | [ISO 1996-2:2007](https://www.iso.org/standard/41860.html) | withdrawn | Annex C tonal audibility. | [acoustic-toolbox](https://zhenxianli.github.io/LISQM/projects/acoustic-toolbox.html), [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html), [python-acoustics](https://zhenxianli.github.io/LISQM/projects/python-acoustics.html) | ## Project map The lines of the project map for tonal audibility (ISO 1996-2) only, between the projects listed for it (the whole map: https://zhenxianli.github.io/LISQM/projects/map.md). Agreement between a project and the code it was ported or adapted from only checks the port. ### Ported or adapted from another project - From [python-acoustics](https://zhenxianli.github.io/LISQM/projects/python-acoustics.html): [acoustic-toolbox](https://zhenxianli.github.io/LISQM/projects/acoustic-toolbox.html) (ISO 1996-2:2007) On the map without a line, as no relation to another project listed for tonal audibility (ISO 1996-2) is recorded for them: **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** and [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html). ## Implementations | Project | Language | Edition | Functions | Validation (as stated) | Notes | |---|---|---|---|---|---| | **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** | Python | [ISO 1996-2:2017](https://www.iso.org/standard/59766.html) (Annex K prominent-tone detection) | — | not stated | PR (https://github.com/Eomys/MoSQITo/pull/52). Pull request from May 2022; no maintainer reply. | | [acoustic-toolbox](https://zhenxianli.github.io/LISQM/projects/acoustic-toolbox.html) | Python | [ISO 1996-2:2007](https://www.iso.org/standard/41860.html) (tonal audibility and tonal adjustment) | `Tonality`, `tonal_audibility`, `tonal_adjustment` | own tests only | Module `acoustic_toolbox.standards.iso_1996_2_2007`, the same code lineage as python-acoustics. | | [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | Python | [ISO 1996-2:2017](https://www.iso.org/standard/59766.html) (Annex K survey method and Table J.1; in the phonometry.environment namespace) | — | not stated | Newly released project, not yet seen to be widely used. | | [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | Python | [ISO 1996-2:2007](https://www.iso.org/standard/41860.html) (Annex C; in the phonometry.environment namespace) | — | not stated | Newly released project, not yet seen to be widely used. | | [python-acoustics](https://zhenxianli.github.io/LISQM/projects/python-acoustics.html) | Python | [ISO 1996-2:2007](https://www.iso.org/standard/41860.html) (tonal audibility and tonal adjustment) | `Tonality`, `tonal_audibility`, `tonal_adjustment` | own tests only | Legacy project, no longer maintained. Module `acoustics.standards.iso_1996_2_2007`. The `Tonality` docstring uses the title of Annex C ("Objective method for assessing the audibility of tones in noise"), though the code does not name the annex. | **See also:** [Audibility of tones in noise (ISO/TS 20065)](https://zhenxianli.github.io/LISQM/metrics/tonal-audibility-iso-20065.html), [Tonal audibility of wind turbine noise (IEC 61400-11)](https://zhenxianli.github.io/LISQM/metrics/tonal-audibility-iec-61400-11.html) ## How they were validated As reported by each project; LISQM has not run the code. Two implementations that agree can still share the same error. - [acoustic-toolbox](https://zhenxianli.github.io/LISQM/projects/acoustic-toolbox.html), ISO 1996-2:2007: own tests only - Ported or adapted from [python-acoustics](https://zhenxianli.github.io/LISQM/projects/python-acoustics.html). - As in python-acoustics, the test of the examples in the standard is commented out. - [python-acoustics](https://zhenxianli.github.io/LISQM/projects/python-acoustics.html), ISO 1996-2:2007: own tests only - A test of the examples in the standard, using DELTA tone files, is commented out. Not stated by MoSQITo; phonometry for ISO 1996-2:2017 and ISO 1996-2:2007. ## References 1. ISO 1996-2:2007. Acoustics — Description, measurement and assessment of environmental noise — Part 2: Determination of environmental noise levels. https://www.iso.org/standard/41860.html 2. ISO 1996-2:2017. Acoustics — Description, measurement and assessment of environmental noise — Part 2: Determination of sound pressure levels. https://www.iso.org/standard/59766.html --- # Tonal audibility of wind turbine noise (IEC 61400-11) > 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/metrics/tonal-audibility-iec-61400-11.html **Quantity:** Tonality · **Unit:** dB · **Also known as:** IEC 61400-11, wind turbine tonality, tonal audibility Tonality analysis in the acoustic noise measurement of wind turbines: tones are identified in narrow-band spectra and their tonal audibility is reported. The current edition is IEC 61400-11:2012+AMD1:2018. Open-source implementations of it: [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) (Python; newly released, not yet seen to be widely used). So far, only newly released projects, not yet seen to be widely used in the community, have released an implementation of it. Check their validation before relying on them. ## Editions and who implements them | Date | Edition | Status | What changed | Implemented by | |---|---|---|---|---| | 2012-11 | [IEC 61400-11:2012+AMD1:2018](https://webstore.iec.ch/en/publication/63367) | current | Edition 3 with Amendment 1 (2018); tonal audibility in clause 9.5. | [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | | 2002-12 | [IEC 61400-11:2002](https://webstore.iec.ch/en/publication/19736) | superseded | Edition 2 (Amendment 1 in 2006); already has a tonal audibility procedure. | — | ## Implementations | Project | Language | Edition | Functions | Validation (as stated) | Notes | |---|---|---|---|---|---| | [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | Python | [IEC 61400-11:2012+AMD1:2018](https://webstore.iec.ch/en/publication/63367) | `wind_turbine_tonality` | not stated | Newly released project, not yet seen to be widely used. | **See also:** [Tonal audibility in environmental noise (ISO 1996-2)](https://zhenxianli.github.io/LISQM/metrics/tonal-audibility-iso-1996-2.html) ## How they were validated As reported by each project; LISQM has not run the code. Two implementations that agree can still share the same error. None of these projects says how its code was validated. ## References 1. IEC 61400-11:2002. Wind turbine generator systems — Part 11: Acoustic noise measurement techniques. https://webstore.iec.ch/en/publication/19736 2. IEC 61400-11:2012+AMD1:2018. Wind turbines — Part 11: Acoustic noise measurement techniques. https://webstore.iec.ch/en/publication/63367 --- # Prominence of impulsive sounds (ISO/PAS 1996-3, NT ACOU 112) > 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/metrics/impulsiveness.html **Quantity:** Impulsiveness · **Unit:** dB · **Also known as:** ISO/PAS 1996-3, NT ACOU 112, impulsiveness, impulse adjustment, impulsive sound prominence Objective prominence of impulsive sounds and the corresponding adjustment of the equivalent level in environmental noise assessment: Nordtest method NT ACOU 112 and ISO/PAS 1996-3:2022 (adjustment of 0 to 9 dB). Hearing-model impulsiveness metrics are not standardised and no open implementation is listed. The current edition is ISO/PAS 1996-3:2022. Open-source implementations of it: [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) (Python; newly released, not yet seen to be widely used; in the phonometry.environment namespace). So far, only newly released projects, not yet seen to be widely used in the community, have released an implementation of it. Check their validation before relying on them. Implementations of earlier editions or related models: [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) (Python; newly released, not yet seen to be widely used; NT ACOU 112; in the phonometry.environment namespace). ## Editions and who implements them | Date | Edition | Status | What changed | Implemented by | |---|---|---|---|---| | 2022-07 | [ISO/PAS 1996-3:2022](https://www.iso.org/standard/77035.html) | current; ISO Open Data (2026-09-30) links it to a successor project (ISO 95221), which has not been published yet. | Publicly available specification. | [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | | 2002-05 | [NT ACOU 112](http://www.nordtest.info/wp/2002/05/01/acoustics-prominence-of-impulsive-sounds-and-for-adjustment-of-laeq-nt-acou-112/) | current | Nordic test method. | [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | ## Implementations | Project | Language | Edition | Functions | Validation (as stated) | Notes | |---|---|---|---|---|---| | [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | Python | [ISO/PAS 1996-3:2022](https://www.iso.org/standard/77035.html) (in the phonometry.environment namespace) | — | not stated | Newly released project, not yet seen to be widely used. | | [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | Python | [NT ACOU 112](http://www.nordtest.info/wp/2002/05/01/acoustics-prominence-of-impulsive-sounds-and-for-adjustment-of-laeq-nt-acou-112/) (in the phonometry.environment namespace) | — | not stated | Newly released project, not yet seen to be widely used. | ## How they were validated As reported by each project; LISQM has not run the code. Two implementations that agree can still share the same error. None of these projects says how its code was validated. ## References 1. Nordtest (2002). *NT ACOU 112: Acoustics — Prominence of impulsive sounds and for adjustment of LAeq*. Nordtest, Taastrup. http://www.nordtest.info/wp/2002/05/01/acoustics-prominence-of-impulsive-sounds-and-for-adjustment-of-laeq-nt-acou-112/ 2. ISO/PAS 1996-3:2022. Acoustics — Description, measurement and assessment of environmental noise — Part 3: Objective method for the measurement of prominence of impulsive sounds and for adjustment of LAeq. https://www.iso.org/standard/77035.html --- # Psychoacoustic annoyance (Widmann, Zwicker & Fastl, More, Di et al.) > 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/metrics/psychoacoustic-annoyance.html **Quantity:** Psychoacoustic annoyance · **Unit:** dimensionless · **Also known as:** PA, psychoacoustic annoyance, Zwicker annoyance, Widmann annoyance, More annoyance, Di annoyance Psychoacoustic annoyance (PA) combines percentile loudness N5 with sharpness, roughness and fluctuation strength (Widmann 1992; Zwicker & Fastl 1999). More (2010) added tonality and Di et al. (2016) adapted the model for tonal noise. None of these is standardised; ISO/AWI 26573, registered in 2026, covers the assessment of annoyance through listening tests, including prediction models. There is no standard; the reference models are Widmann (1992), Zwicker & Fastl (1999), More (2010), and Di et al. (2016). In development: ISO/AWI 26573. Open-source implementations of it: **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (MATLAB; Di et al. (2016)), **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (MATLAB; More (2010)), **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (MATLAB; Zwicker & Fastl (1999)), **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (MATLAB; Widmann (1992)), [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (MATLAB, Python; Di et al. (2016); Python, from precomputed metric values), [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (MATLAB, Python; More (2010); Python, from precomputed metric values), [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (MATLAB, Python; Widmann (1992)), [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) (Python; newly released, not yet seen to be widely used; Zwicker & Fastl (1999)), [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html) (Julia; newly released, not yet seen to be widely used; Widmann (1992); percentile convention (N5, S5, R5, FS5) and a stationary approximation), [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) (Python; developing; Di et al. (2016)), [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) (Python; developing; More (2010)), [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) (Python; developing; Zwicker & Fastl (1999)), and [PsychoacousticParametersMeasurer](https://zhenxianli.github.io/LISQM/projects/psychoacoustic-parameters-measurer.html) (Python; legacy, no commit since 2021-06; Zwicker & Fastl (1999)). ## Editions and who implements them | Date | Edition | Status | What changed | Implemented by | |---|---|---|---|---| | 2026-04 | [ISO/AWI 26573](https://www.iso.org/standard/93922.html) | in development | Approved work item (stage 20.00) since 2026. | — | | 2016 | [Di et al. (2016)](https://doi.org/10.1016/j.apacoust.2015.12.006) | published | Adapted for tonal noise. | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html), [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) | | 2010 | [More (2010)](https://docs.lib.purdue.edu/dissertations/AAI3453255) | published | Adds tonality. | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html), [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) | | 1999 | [Zwicker & Fastl (1999)](https://doi.org/10.1007/978-3-662-09562-1) | published | Book version of the model. | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html), [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html), [PsychoacousticParametersMeasurer](https://zhenxianli.github.io/LISQM/projects/psychoacoustic-parameters-measurer.html) | | 1992 | [Widmann (1992)](https://zhenxianli.github.io/LISQM/standards.html#ref-widmann-1992) | published | Original model. | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html), [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html) | ## Project map The lines of the project map for psychoacoustic annoyance only, between the projects listed for it (the whole map: https://zhenxianli.github.io/LISQM/projects/map.md). Agreement between a project and the code it was ported or adapted from only checks the port. ### Ported or adapted from another project - From **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**: [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) (Di et al. (2016), More (2010), and Zwicker & Fastl (1999)) ### Results checked against another project - [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html) against **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (Widmann (1992)) ### Same contributor - **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** and [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (Mike Lotinga) On the map without a line, as no relation to another project listed for psychoacoustic annoyance is recorded for them: [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) and [PsychoacousticParametersMeasurer](https://zhenxianli.github.io/LISQM/projects/psychoacoustic-parameters-measurer.html). ## Implementations | Project | Language | Edition | Functions | Validation (as stated) | Notes | |---|---|---|---|---|---| | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** | MATLAB | [Di et al. (2016)](https://doi.org/10.1016/j.apacoust.2015.12.006) (since v1.0) | `PsychoacousticAnnoyance_Di2016`, `PsychoacousticAnnoyance_Di2016_from_percentile` | not stated | — | | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** | MATLAB | [More (2010)](https://docs.lib.purdue.edu/dissertations/AAI3453255) (since v1.0) | `PsychoacousticAnnoyance_More2010`, `PsychoacousticAnnoyance_More2010_from_percentile` | not stated | — | | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** | MATLAB | [Zwicker & Fastl (1999)](https://doi.org/10.1007/978-3-662-09562-1) (since v1.0) | `PsychoacousticAnnoyance_Zwicker1999`, `PsychoacousticAnnoyance_Zwicker1999_from_percentile` | not stated | Since v2.0 a wrapper of `PsychoacousticAnnoyance_Widmann1992`, which its header says will be removed in future releases. | | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** | MATLAB | [Widmann (1992)](https://zhenxianli.github.io/LISQM/standards.html#ref-widmann-1992) (since v2.0) | `PsychoacousticAnnoyance_Widmann1992`, `PsychoacousticAnnoyance_Widmann1992_from_percentile` | not stated | Added in June 2025 (PR #32); the README describes it as the same model as the Zwicker & Fastl entry under its original attribution. | | [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) | MATLAB, Python | [Di et al. (2016)](https://doi.org/10.1016/j.apacoust.2015.12.006) (Python, from precomputed metric values) | `diPA` | not stated | — | | [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) | MATLAB, Python | [More (2010)](https://docs.lib.purdue.edu/dissertations/AAI3453255) (Python, from precomputed metric values) | `morePA` | not stated | — | | [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) | MATLAB, Python | [Widmann (1992)](https://zhenxianli.github.io/LISQM/standards.html#ref-widmann-1992) | `acousticPsychAnnoy`, `widmannPA` | standard or paper data | The MATLAB header names the model Widmann (1992), "commonly misattributed to Zwicker". The Python `widmannPA` takes precomputed metric values. | | [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | Python | [Zwicker & Fastl (1999)](https://doi.org/10.1007/978-3-662-09562-1) (since 3.1.0) | `psychoacoustic_annoyance`, `psychoacoustic_annoyance_from_signal` | own tests only | Newly released project, not yet seen to be widely used. Follows Eqs. 16.2–16.4 of Fastl & Zwicker (2007), the textbook form of Widmann's model. | | [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html) | Julia | [Widmann (1992)](https://zhenxianli.github.io/LISQM/standards.html#ref-widmann-1992) (percentile convention (N5, S5, R5, FS5) and a stationary approximation; since 0.4.0) | `psychoacoustic_annoyance_widmann` | compared with SQAT | Newly released project, not yet seen to be widely used. Uses ZwickerLoudness.jl. | | [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) | Python | [Di et al. (2016)](https://doi.org/10.1016/j.apacoust.2015.12.006) | `PsychoacousticAnnoyance_Di2016` | compared with SQAT (its source) | Developing project: no publication or documented use by others. No licence file: by default, copying, changing or sharing the code needs the author's permission. | | [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) | Python | [More (2010)](https://docs.lib.purdue.edu/dissertations/AAI3453255) | `PsychoacousticAnnoyance_More2010` | compared with SQAT (its source) | Developing project: no publication or documented use by others. No licence file: by default, copying, changing or sharing the code needs the author's permission. | | [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) | Python | [Zwicker & Fastl (1999)](https://doi.org/10.1007/978-3-662-09562-1) | `PsychoacousticAnnoyance_Zwicker1999` | compared with SQAT (its source) | Developing project: no publication or documented use by others. No licence file: by default, copying, changing or sharing the code needs the author's permission. | | [PsychoacousticParametersMeasurer](https://zhenxianli.github.io/LISQM/projects/psychoacoustic-parameters-measurer.html) | Python | [Zwicker & Fastl (1999)](https://doi.org/10.1007/978-3-662-09562-1) | `psychoacousticAnnoyance` | not stated | Legacy project, no longer maintained. No licence file: by default, copying, changing or sharing the code needs the author's permission. The header cites Zwicker & Fastl, "Psychoacoustics: Facts and Models", without naming an edition. | ## How they were validated As reported by each project; LISQM has not run the code. Two implementations that agree can still share the same error. - **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, Di et al. (2016); More (2010): not stated - No verification routine (README). - [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html), Widmann (1992): standard or paper data - A validation script (`validation/metrics/mlab/acousticPsychAnnoyValidation.m`) compares the MATLAB version with values from Widmann (1992). - [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html), Zwicker & Fastl (1999): own tests only - Tests compare one set of inputs (N5 = 30 sone, S = 2.0 acum, F = 0.5 vacil, R = 0.3 asper) with the value worked out by hand from Eqs. 16.2–16.4 (37.0478, within 0.001) and check the terms of the formula; no published example is used. - [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html), Widmann (1992): compared with **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** - Cross-checked against SQAT's `PsychoacousticAnnoyance_Widmann1992`: an 840-case formula grid, reproduced bit-exactly, and six signal-level cases with SQAT's own N5, S5, R5 and FS5 vendored, so that every deviation is attributed to a component. - Checked at the published 1 au anchor (a 1 kHz tone at 40 dB SPL): on the 4 s cross-check case, the percentile convention lands 0.1 % from it and the stationary approximation 0.8 %; on the README's 5 s examples, 0.3 % and 1.4 %. - [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html), Di et al. (2016); More (2010); Zwicker & Fastl (1999): 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. Not stated by SQAT for Zwicker & Fastl (1999) and Widmann (1992); refmap-psychoacoustics for Di et al. (2016) and More (2010); PsychoacousticParametersMeasurer. ## Before you compare numbers Implementations of the same metric can give different numbers without either being wrong. Check these choices first. - **Inputs.** The models combine percentile values of loudness, sharpness, roughness and fluctuation strength (N5, S5, R5 and F5 in SQAT and PsychoacousticMetrics.jl). The percentile definition and the sharpness, roughness and fluctuation-strength models used change the result, and so does using whole-signal values instead (a stationary approximation). - **Same model, two names.** Zwicker & Fastl (1999) give Widmann's (1992) model; SQAT lists it under both names. More (2010) and Di et al. (2016) are different models. What the projects state: - **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**: Statistics such as N5 take the nearest rank of the sorted time series, without interpolation (`get_exceeded_value`), and leave out the first `time_skip` seconds of the signal. - [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html): The percentile form needs 48 kHz input. Percentiles are Hyndman–Fan type 7 quantiles (linear interpolation); SQAT takes the nearest rank, which the README says differs by a full order-statistic step on the coarse fluctuation-strength track. ## References 1. Widmann, U. (1992). *Ein Modell der psychoakustischen Lästigkeit von Schallen und seine Anwendung in der Praxis der Lärmbeurteilung* [Doctoral dissertation, Technische Universität München]. 2. Zwicker, E., & Fastl, H. (1999). *Psychoacoustics: Facts and models* (2nd ed.). Springer. https://doi.org/10.1007/978-3-662-09562-1 3. More, S. R. (2010). *Aircraft noise characteristics and metrics* [Doctoral dissertation, Purdue University]. PARTNER report PARTNER-COE-2011-004. https://docs.lib.purdue.edu/dissertations/AAI3453255 4. Di, G., Chen, X., Song, K., Zhou, B., & Pei, C. (2016). Improvement of Zwicker's psychoacoustic annoyance model aiming at tonal noises. *Applied Acoustics*, 105, 164–170. https://doi.org/10.1016/j.apacoust.2015.12.006 5. ISO/AWI 26573. Acoustics — Procedures for assessment and prediction of noise-induced perceptual annoyance through laboratory-based listening tests. https://www.iso.org/standard/93922.html --- # Equal-loudness-level contours (ISO 226) > 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/metrics/equal-loudness-contours.html **Quantity:** Related quantities · **Unit:** dB SPL, phon · **Also known as:** ISO 226, equal-loudness contours, phon curves, threshold of hearing Normal equal-loudness-level contours for pure tones in free-field listening. ISO 226:2023 replaced ISO 226:2003; ECMA-418-2:2025 still refers to the 2003 edition. The current edition is ISO 226:2023. Open-source implementations of it: [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) (Python; newly released, not yet seen to be widely used). So far, only newly released projects, not yet seen to be widely used in the community, have released an implementation of it. Check their validation before relying on them. Implementations of earlier editions or related models: **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (Python; ISO 226:2003), [PSYCHO](https://zhenxianli.github.io/LISQM/projects/pd-psycho.html) (Pure Data, C; ISO 226:2003), [PyDSM](https://zhenxianli.github.io/LISQM/projects/pydsm.html) (Python; ISO 226:2003; tabled and interpolated contours; optional 20 kHz extension), [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html) (C#; newly released, not yet seen to be widely used; ISO 226:2003), and [IoSR Matlab Toolbox](https://zhenxianli.github.io/LISQM/projects/iosr-matlab-toolbox.html) (MATLAB; legacy, no commit since 2017-08; ISO 226:2003). ## Editions and who implements them | Date | Edition | Status | What changed | Implemented by | |---|---|---|---|---| | 2023-03 | [ISO 226:2023](https://www.iso.org/standard/83117.html) | current | Third edition. | [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | | 2003-08 | [ISO 226:2003](https://www.iso.org/standard/34222.html) | withdrawn | Second edition; withdrawn in 2023. | **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**, [PSYCHO](https://zhenxianli.github.io/LISQM/projects/pd-psycho.html), [PyDSM](https://zhenxianli.github.io/LISQM/projects/pydsm.html), [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html), [IoSR Matlab Toolbox](https://zhenxianli.github.io/LISQM/projects/iosr-matlab-toolbox.html) | ## Project map The lines of the project map for equal-loudness contours only, between the projects listed for it (the whole map: https://zhenxianli.github.io/LISQM/projects/map.md). Agreement between a project and the code it was ported or adapted from only checks the port. ### Ported or adapted from another project - From **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**: [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html) (ISO 226:2003) On the map without a line, as no relation to another project listed for equal-loudness contours is recorded for them: [PSYCHO](https://zhenxianli.github.io/LISQM/projects/pd-psycho.html), [PyDSM](https://zhenxianli.github.io/LISQM/projects/pydsm.html), [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html), and [IoSR Matlab Toolbox](https://zhenxianli.github.io/LISQM/projects/iosr-matlab-toolbox.html). ## Implementations | Project | Language | Edition | Functions | Validation (as stated) | Notes | |---|---|---|---|---|---| | **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** | Python | [ISO 226:2003](https://www.iso.org/standard/34222.html) (since 0.3.5) | `equal_loudness_contours` | not stated | The docstring gives no edition; it is based on Jeff Tackett's MATLAB code for ISO 226:2003. | | [PSYCHO](https://zhenxianli.github.io/LISQM/projects/pd-psycho.html) | Pure Data, C | [ISO 226:2003](https://www.iso.org/standard/34222.html) | `[iso226]` | not stated | The help patch names ISO 226:2003. Related objects convert between phon and dB (`[phon2db]`, `[db2phon]`) and between phon and sone (`[phon2sone]`, `[sone2phon]`). | | [PyDSM](https://zhenxianli.github.io/LISQM/projects/pydsm.html) | Python | [ISO 226:2003](https://www.iso.org/standard/34222.html) (tabled and interpolated contours; optional 20 kHz extension) | `pydsm.iso226` | not stated | — | | [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | Python | [ISO 226:2023](https://www.iso.org/standard/83117.html) (since 3.1.0) | `equal_loudness_contour`, `equal_loudness_contours`, `loudness_level`, `hearing_threshold` | standard or paper data | Newly released project, not yet seen to be widely used. | | [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html) | C# | [ISO 226:2003](https://www.iso.org/standard/34222.html) | `Sq.EqualLoudnessContours` | not stated | Newly released project, not yet seen to be widely used. Code comments say ISO 226:1987, but the tables are ported from MoSQITo, whose code follows Jeff Tackett's ISO 226:2003 implementation. | | [IoSR Matlab Toolbox](https://zhenxianli.github.io/LISQM/projects/iosr-matlab-toolbox.html) | MATLAB | [ISO 226:2003](https://www.iso.org/standard/34222.html) | `iosr.auditory.iso226` | not stated | Legacy project, no longer maintained. | ## How they were validated As reported by each project; LISQM has not run the code. Two implementations that agree can still share the same error. - [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html), ISO 226:2023: standard or paper data - Tests compare 17 points of Table B.1 (20 to 90 phon, 20 Hz to 12.5 kHz) and 6 points of Table B.2 with the computed contours and loudness levels, within 0.05 dB or phon, and the hearing threshold with Table 1. Not stated by MoSQITo, PSYCHO, PyDSM, Mosqito.NET, and IoSR Matlab Toolbox. ## References 1. ISO 226:2003. Acoustics — Normal equal-loudness-level contours. https://www.iso.org/standard/34222.html 2. ISO 226:2023. Acoustics — Normal equal-loudness-level contours. https://www.iso.org/standard/83117.html --- # Perceived noise level, PNLT and EPNL (ICAO Annex 16, 14 CFR Part 36) > 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/metrics/epnl.html **Quantity:** Related quantities · **Unit:** PNdB, EPNdB · **Also known as:** EPNL, EPNdB, PNL, PNLT, perceived noisiness, noy, aircraft noise certification Effective perceived noise level for aircraft noise certification: perceived noisiness in noy, the tone-corrected perceived noise level (PNLT) and a duration correction. Defined in ICAO Annex 16, Volume I, and in the US regulation 14 CFR Part 36. The current edition is ICAO Annex 16, Vol. I and 14 CFR Part 36. Open-source implementations of it: **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (MATLAB; 14 CFR Part 36), [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) (Python; newly released, not yet seen to be widely used; ICAO Annex 16, Vol. I; PNL, PNLT and EPNL, in the phonometry.aircraft namespace), [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) (Python; developing; 14 CFR Part 36), and [SUAVE](https://zhenxianli.github.io/LISQM/projects/suave.html) (Python; legacy, no commit since 2022-12; ICAO Annex 16, Vol. I; PNL, PNLT and EPNL; the code cites no edition). ## Editions and who implements them | Date | Edition | Status | What changed | Implemented by | |---|---|---|---|---| | 2017-07 | [ICAO Annex 16, Vol. I](https://store.icao.int/en/annex-16-environmental-protection-volume-i-aircraft-noise) | current; Amendment 15 was adopted on 2026-03-27 and applies from 2027-01-01 (new noise limits and supersonic aeroplanes); whether it changes the EPNL procedure itself has not been confirmed. | International standard for aircraft noise certification. | [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html), [SUAVE](https://zhenxianli.github.io/LISQM/projects/suave.html), [Zhen-Ni/epnl](https://zhenxianli.github.io/LISQM/projects/zhen-ni-epnl.html) | | 2002-07 | [14 CFR Part 36](https://www.ecfr.gov/current/title-14/chapter-I/subchapter-C/part-36) | current | US regulation (Appendices A and B). | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) | ## Project map The lines of the project map for perceived noise level and EPNL only, between the projects listed for it (the whole map: https://zhenxianli.github.io/LISQM/projects/map.md). Agreement between a project and the code it was ported or adapted from only checks the port. ### Ported or adapted from another project - From **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**: [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) (14 CFR Part 36) On the map without a line, as no relation to another project listed for perceived noise level and EPNL is recorded for them: [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html), [SUAVE](https://zhenxianli.github.io/LISQM/projects/suave.html), and [Zhen-Ni/epnl](https://zhenxianli.github.io/LISQM/projects/zhen-ni-epnl.html). ## Implementations | Project | Language | Edition | Functions | Validation (as stated) | Notes | |---|---|---|---|---|---| | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** | MATLAB | [14 CFR Part 36](https://www.ecfr.gov/current/title-14/chapter-I/subchapter-C/part-36) (since v1.1) | `EPNL_FAR_Part36`, `get_PNL`, `get_PNLT`, `get_Duration_Correction` | compared with published EPNL values (Rizzi et al., 2020) | Follows Amendment 36-26 (2005). | | [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | Python | [ICAO Annex 16, Vol. I](https://store.icao.int/en/annex-16-environmental-protection-volume-i-aircraft-noise) (PNL, PNLT and EPNL, in the phonometry.aircraft namespace) | — | standard or paper data | Newly released project, not yet seen to be widely used. | | [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) | Python | [14 CFR Part 36](https://www.ecfr.gov/current/title-14/chapter-I/subchapter-C/part-36) | `EPNL_FAR_Part36` | compared with SQAT (its source) | Developing project: no publication or documented use by others. No licence file: by default, copying, changing or sharing the code needs the author's permission. | | [SUAVE](https://zhenxianli.github.io/LISQM/projects/suave.html) | Python | [ICAO Annex 16, Vol. I](https://store.icao.int/en/annex-16-environmental-protection-volume-i-aircraft-noise) (PNL, PNLT and EPNL; the code cites no edition) | `pnl_noise`, `noise_tone_correction`, `epnl_noise` | not stated | Legacy project, no longer maintained. EPNL is computed from a PNLT time history. The noise tools cite neither ICAO Annex 16 nor 14 CFR Part 36, nor an edition; their docstrings give "Source: None". | | [Zhen-Ni/epnl](https://zhenxianli.github.io/LISQM/projects/zhen-ni-epnl.html) | Rust | [ICAO Annex 16, Vol. I](https://store.icao.int/en/annex-16-environmental-protection-volume-i-aircraft-noise) (PNL and PNLT only; no duration correction to EPNL) | `SPL`, `Noy`, `PNL`, `PNLT` | not stated | Legacy project, no longer maintained. No licence file: by default, copying, changing or sharing the code needs the author's permission. Partial: computes only part of the metric. Code comments cite "Annex 16 - Volume I, APP 2-16 / 2-17" and number the 24 bands "consistent with ICAO ANNEX 16". The quantities are Rust types converted into each other with `From`. | ## How they were validated As reported by each project; LISQM has not run the code. Two implementations that agree can still share the same error. - **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, 14 CFR Part 36: compared with published EPNL values (Rizzi et al., 2020) - The README says that no reference implementation or test signals exist, so the verification is partial. - Perceived noisiness is checked at its definition (a third-octave band of noise at 1 kHz and 40 dB SPL gives 1 noy), and the tone correction factor against Table 3.7 of ICAO Doc 9501. - EPNL is cross-checked with Table 4 of Rizzi et al. (2020), AIAA 2020-2582, for 15 flyover sounds (five cases auralised by three tools): the largest difference is about 0.6 EPNdB. - [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html), ICAO Annex 16, Vol. I: standard or paper data - Tested with the EPNL example of ICAO Doc 9501 (Environmental Technical Manual). - [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.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. Not stated by SUAVE and Zhen-Ni/epnl. ## References 1. 14 CFR Part 36. Noise standards: aircraft type and airworthiness certification (Appendix A: EPNL). https://www.ecfr.gov/current/title-14/chapter-I/subchapter-C/part-36 2. ICAO Annex 16, Vol. I. Annex 16 to the Convention on International Civil Aviation — Environmental Protection — Volume I: Aircraft Noise. https://store.icao.int/en/annex-16-environmental-protection-volume-i-aircraft-noise --- # Aural detectability of sounds in background noise > 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/metrics/aural-detectability.html **Quantity:** Related quantities · **Unit:** d′ (detectability index), dB · **Also known as:** detectability, d-prime, signal detection, aural detection, audibility of aircraft How likely a listener is to detect a sound in background noise, from signal-to-noise ratios in auditory filters and signal-detection theory. Used for aircraft, drone and urban air mobility noise. Not standardised. There is no standard; the reference model is Fidell et al. (1974). Open-source implementations of it: [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (MATLAB, Python; MATLAB and Python). Implementations of earlier editions or related models: [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (MATLAB, Python; Rizzi et al. (2025); MATLAB and Python). ## Editions and who implements them | Date | Edition | Status | What changed | Implemented by | |---|---|---|---|---| | 2025-07 | [Rizzi et al. (2025)](https://doi.org/10.2514/1.C038188) | published | NASA's use of the model in annoyance assessments of urban air mobility, with audibility as a factor. | [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) | | 1974 | [Fidell et al. (1974)](https://doi.org/10.1177/001872087401600405) | published | Model paper. | [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) | ## Implementations | Project | Language | Edition | Functions | Validation (as stated) | Notes | |---|---|---|---|---|---| | [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) | MATLAB, Python | [Rizzi et al. (2025)](https://doi.org/10.2514/1.C038188) (MATLAB and Python) | `auralDetectability`, `aural_detect` | not stated | The same functions; the README cites this paper for the NASA development of the model. | | [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) | MATLAB, Python | [Fidell et al. (1974)](https://doi.org/10.1177/001872087401600405) (MATLAB and Python) | `auralDetectability`, `auralDetectFromLeq`, `aural_detect`, `aural_detect_from_lzeqt` | not stated | Code headers describe the Fidell, Pearsons & Bennett (1974) model as "developed further by NASA" and cite "Rizzi, SA et al, 2024"; the README cites Rizzi et al. (2025), *Journal of Aircraft*, doi:10.2514/1.C038188. | ## How they were validated As reported by each project; LISQM has not run the code. Two implementations that agree can still share the same error. None of these projects says how its code was validated. ## References 1. Fidell, S., Pearsons, K. S., & Bennett, R. (1974). Prediction of aural detectability of noise signals. *Human Factors*, 16(4), 373–383. https://doi.org/10.1177/001872087401600405 2. Rizzi, S. A., Christian, A. W., Letica, S. J., & Lympany, S. V. (2026). Annoyance model assessments of urban air mobility vehicle operations. *Journal of Aircraft*, 63(1). Published online 2025-07-02. https://doi.org/10.2514/1.C038188 --- # SQAT > 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/sqat.html MATLAB toolbox for sound quality analysis that bundles most psychoacoustic metrics in one place: ISO 532-1 and ECMA-418-2 loudness, DIN 45692 sharpness, Daniel & Weber and ECMA-418-2 roughness, Osses fluctuation strength, Aures and ECMA-418-2 tonality, three psychoacoustic annoyance models (Widmann's, which SQAT also offers under its common attribution to Zwicker & Fastl; More; Di et al.) and EPNL. Every metric except the annoyance models has its own verification routine. Since v2.0 it also has a graphical interface. - **Repository:** https://github.com/ggrecow/SQAT - **Documentation:** https://github.com/ggrecow/SQAT#readme - **Language:** MATLAB - **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. A widely used project.) - **Licence:** GPL-3.0-or-later — Since v2.0 (2026-10-15) the releases, like the default branch since 2026-09-15, are GPL-3.0-or-later, with BSD-3-Clause (ISO 532-1 loudness), MIT (Daniel & Weber roughness and nine utilities) and CC0-1.0 (colour maps) exceptions. Every release up to and including v1.3 is CC-BY-NC-4.0 (non-commercial) at repository level, while 21 metric files in v1.3 carry BSD-style notices and the ECMA-418-2 files say GPL-3.0. - **Latest release:** v2.0 (2026-10) - **Last commit:** 2026-10-15 (active) - **GitHub stars:** 100 - **Maintainers:** Gil Felix Greco, Roberto Merino-Martínez, Alejandro Osses, Mike Lotinga - **AI assistance:** disclosed — At v2.0, header comments in 44 files (24 of them in the graphical interface) say that changes or code written from August to October 2026 were assisted by Claude (Anthropic) and verified by the authors; 132 commits carry AI co-author trailers. Neither the README nor the v2.0 release notes have an AI statement. - **Paper:** Felix Greco, G., Merino-Martínez, R., Osses, A., & Langer, S. C. (2023). SQAT: a MATLAB-based toolbox for quantitative sound quality analysis. *Proceedings of INTER-NOISE 2023*, Chiba, Japan. https://doi.org/10.3397/IN_2023_1075 - **How to cite:** The README asks for the toolbox itself: Felix Greco, G., Merino-Martínez, R., Osses, A., & Lotinga, M. J. B. (2026). *SQAT: a sound quality analysis toolbox for MATLAB*. Zenodo. It recommends citing the specific version used, since results differ between releases; each release has its own DOI (for v2.0, `citation.cff` gives 10.5281/zenodo.23387628). The paper above describes the first release. Software DOI: [10.5281/zenodo.7934709](https://doi.org/10.5281/zenodo.7934709). The repository has a [CITATION.cff](https://github.com/ggrecow/SQAT/blob/main/citation.cff) file. Name 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) (stationary and time-varying; since v1.0) | `Loudness_ISO532_1`, `Loudness_ISO532_1_from_wavfile` | available | standard or paper data | v2.0 corrects the time-varying procedure (PR #48) and the `time_skip` handling of the stationary procedure; results differ from v1.x. | | [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) (since v2.0) | `Loudness_ECMA418_2`, `LoudnessFromComp_ECMA418_2` | available | compared with ArtemiS SUITE (HEAD acoustics) | Updated to the 4th edition in 2025. | | [Sottek Hearing Model loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-ecma-418-2.html) | [ECMA-418-2:2024 (3rd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_3rd_edition_december_2024.pdf) (mono or two channels with binaural combination; since v1.3) | `Loudness_ECMA418_2`, `LoudnessFromComp_ECMA418_2` | available | compared with ArtemiS SUITE (HEAD acoustics) | In v1.3; v2.0 follows the 4th edition. | | [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html) | [DIN 45692:2009](https://www.dinmedia.de/en/standard/din-45692/117635111) (DIN 45692 weighting, plus von Bismarck and Aures options; since v1.0) | `Sharpness_DIN45692`, `Sharpness_DIN45692_from_loudness`, `Sharpness_DIN45692_from_wavfile` | available | standard or paper data | — | | [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) (since v1.0) | `Roughness_Daniel1997`, `Roughness_Daniel1997_from_wavfile` | available | standard or paper data | The v1.x code is AARAE's `roughnessDW.m` (Dik Hermes's code), adapted and verified for SQAT in 2023. v2.0 rewrites it (PR #65, 2026-09-08) with corrections from revised code that Dik Hermes sent to the SQAT team in 2025: 63 of 119 validation values go up and 56 down (largest change 0.155 asper). | | [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) (since v2.0) | `Roughness_ECMA418_2` | available | compared with ArtemiS SUITE (HEAD acoustics) | Amended to the 4th edition in November 2025. | | [Sottek Hearing Model roughness](https://zhenxianli.github.io/LISQM/metrics/roughness-ecma-418-2.html) | [ECMA-418-2:2024 (3rd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_3rd_edition_december_2024.pdf) (with binaural combination; since v1.3) | `Roughness_ECMA418_2` | available | compared with ArtemiS SUITE (HEAD acoustics) | In v1.3; v2.0 follows the 4th edition. | | [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) (since v1.0) | `FluctuationStrength_Osses2016`, `FluctuationStrength_Osses2016_from_wavfile` | available | standard or paper data | Alejandro Osses's `FluctuationStrength_TUe.m` (TU/e, 2014–2016), taken into SQAT in 2020 and modified there by Osses since 2023. | | [Sottek Hearing Model fluctuation strength](https://zhenxianli.github.io/LISQM/metrics/fluctuation-strength-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) | `FluctuationStrength_ECMA418_2` | PR | not stated | Open pull request since 2026-09-17. | | [Tonality (Aures)](https://zhenxianli.github.io/LISQM/metrics/tonality-aures.html) | [Aures (1985b)](https://zhenxianli.github.io/LISQM/standards.html#ref-aures-1985-euphony) (since v1.0) | `Tonality_Aures1985`, `Tonality_Aures1985_from_wavfile` | available | standard or paper data | v2.0 fixes eight defects (issue #67; for example, only one tonal component's level excess entered the result, and tones were removed from the wrong spectrum), so results differ from v1.x. | | [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) (since v2.0) | `Tonality_ECMA418_2` | available | compared with ArtemiS SUITE (HEAD acoustics) | — | | [Sottek Hearing Model tonality](https://zhenxianli.github.io/LISQM/metrics/tonality-ecma-418-2.html) | [ECMA-418-2:2024 (3rd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_3rd_edition_december_2024.pdf) (since v1.3) | `Tonality_ECMA418_2` | available | compared with ArtemiS SUITE (HEAD acoustics) | In v1.3; v2.0 follows the 4th edition. | | [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) (since v1.0) | `PsychoacousticAnnoyance_Di2016`, `PsychoacousticAnnoyance_Di2016_from_percentile` | available | not stated | — | | [Psychoacoustic annoyance](https://zhenxianli.github.io/LISQM/metrics/psychoacoustic-annoyance.html) | [More (2010)](https://docs.lib.purdue.edu/dissertations/AAI3453255) (since v1.0) | `PsychoacousticAnnoyance_More2010`, `PsychoacousticAnnoyance_More2010_from_percentile` | available | not stated | — | | [Psychoacoustic annoyance](https://zhenxianli.github.io/LISQM/metrics/psychoacoustic-annoyance.html) | [Zwicker & Fastl (1999)](https://doi.org/10.1007/978-3-662-09562-1) (since v1.0) | `PsychoacousticAnnoyance_Zwicker1999`, `PsychoacousticAnnoyance_Zwicker1999_from_percentile` | available | not stated | Since v2.0 a wrapper of `PsychoacousticAnnoyance_Widmann1992`, which its header says will be removed in future releases. | | [Psychoacoustic annoyance](https://zhenxianli.github.io/LISQM/metrics/psychoacoustic-annoyance.html) | [Widmann (1992)](https://zhenxianli.github.io/LISQM/standards.html#ref-widmann-1992) (since v2.0) | `PsychoacousticAnnoyance_Widmann1992`, `PsychoacousticAnnoyance_Widmann1992_from_percentile` | available | not stated | Added in June 2025 (PR #32); the README describes it as the same model as the Zwicker & Fastl entry under its original attribution. | | [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) (since v1.1) | `EPNL_FAR_Part36`, `get_PNL`, `get_PNLT`, `get_Duration_Correction` | available | compared with published EPNL values (Rizzi et al., 2020) | Follows Amendment 36-26 (2005). | ## 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: standard or paper data - Ported or adapted from [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html). - Checked with the 25 test signals of Annex B.2–B.5 against the standard's tolerances. - For v2.0, the validation notes say that the maximum loudness and N5 of the time-varying test signals are close to the reference values, apart from offsets in the N5 of test signals 12 and 13 that they trace to the standard's reference spreadsheet. In v1.3, test signal 10 deviated by 18.14 % (PR #48). - [Sottek Hearing Model loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-ecma-418-2.html), ECMA-418-2:2025 (4th ed.): compared with ArtemiS SUITE (HEAD acoustics) - Ported or adapted from [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (the author's own code). - Checked for the 4th edition against the ISO 226:2003 equal-loudness contours and against reference results from HEAD acoustics ArtemiS SUITE 17.1 (named in the source of SQAT's validation page) for a binaural recording of a train station (last checked in November 2025). - [Sottek Hearing Model loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-ecma-418-2.html), ECMA-418-2:2024 (3rd ed.): compared with ArtemiS SUITE (HEAD acoustics) - Ported or adapted from [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (the author's own code). - Checked against the ISO 226:2003 equal-loudness contours and against reference results from HEAD acoustics ArtemiS SUITE 15.7 (named in the source of SQAT's validation page) for a binaural recording of a train station. - [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html), DIN 45692:2009: standard or paper data - Checked with the narrowband and broadband test signals of DIN 45692. - [Roughness (Daniel & Weber)](https://zhenxianli.github.io/LISQM/metrics/roughness-daniel-weber.html), Daniel & Weber (1997): standard or paper data - Ported or adapted from [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html). - Checked against amplitude- and frequency-modulation dependences from the literature. - [Sottek Hearing Model roughness](https://zhenxianli.github.io/LISQM/metrics/roughness-ecma-418-2.html), ECMA-418-2:2025 (4th ed.): compared with ArtemiS SUITE (HEAD acoustics) - Ported or adapted from [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (the author's own code). - Checked for the 4th edition for the dependence of the roughness of AM tones on modulation frequency, and against reference results from HEAD acoustics ArtemiS SUITE 17.1 (named in the source of SQAT's validation page) for a binaural recording of a train station. - [Sottek Hearing Model roughness](https://zhenxianli.github.io/LISQM/metrics/roughness-ecma-418-2.html), ECMA-418-2:2024 (3rd ed.): compared with ArtemiS SUITE (HEAD acoustics) - Ported or adapted from [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (the author's own code). - Checked for the dependence of the roughness of AM tones on modulation frequency, and against reference results from HEAD acoustics ArtemiS SUITE 15.7 (named in the source of SQAT's validation page) for a binaural recording of a train station. - [Fluctuation strength (Osses et al.)](https://zhenxianli.github.io/LISQM/metrics/fluctuation-strength-osses.html), Osses et al. (2016): standard or paper data - Ported or adapted from [fluctuation-strength-TUe](https://zhenxianli.github.io/LISQM/projects/fluctuation-strength-tue.html) (the author's own code). - Checked against amplitude- and frequency-modulation dependences from the literature. - [Tonality (Aures)](https://zhenxianli.github.io/LISQM/metrics/tonality-aures.html), Aures (1985b): standard or paper data - v2.0 has five validation scripts: a tone emerging from noise, compared with Fig. 1(a) of Hastings et al. (2003) (root mean square deviation 0.0129 t.u. over nine points); the extraction of tonal components and the level excess, compared with the intermediate values of an independent implementation (Zhang & Shrestha, 2003); the weightings of bandwidth and frequency, compared with Aures's Figs. 6 and 5; and the dependence on bandwidth, compared with Hastings's subjective data. - v1.3 is checked with one signal-to-noise comparison. - [Sottek Hearing Model tonality](https://zhenxianli.github.io/LISQM/metrics/tonality-ecma-418-2.html), ECMA-418-2:2025 (4th ed.): compared with ArtemiS SUITE (HEAD acoustics) - Ported or adapted from [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (the author's own code). - Checked for the 4th edition against reference results from HEAD acoustics ArtemiS SUITE 17.1 (named in the source of SQAT's validation page) for a binaural recording of a train station. - A verification against Annex B.2 (PR #79) was merged and reverted on 2026-09-21 because the Annex B values of the 2025 edition appear to be out of date. - [Sottek Hearing Model tonality](https://zhenxianli.github.io/LISQM/metrics/tonality-ecma-418-2.html), ECMA-418-2:2024 (3rd ed.): compared with ArtemiS SUITE (HEAD acoustics) - Ported or adapted from [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (the author's own code). - Checked against reference results from HEAD acoustics ArtemiS SUITE 15.7 (named in the source of SQAT's validation page) for a binaural recording of a train station. - [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): not stated - No verification routine (README). - [Perceived noise level and EPNL](https://zhenxianli.github.io/LISQM/metrics/epnl.html), 14 CFR Part 36: compared with published EPNL values (Rizzi et al., 2020) - The README says that no reference implementation or test signals exist, so the verification is partial. - Perceived noisiness is checked at its definition (a third-octave band of noise at 1 kHz and 40 dB SPL gives 1 noy), and the tone correction factor against Table 3.7 of ICAO Doc 9501. - EPNL is cross-checked with Table 4 of Rizzi et al. (2020), AIAA 2020-2582, for 15 flyover sounds (five cases auralised by three tools): the largest difference is about 0.6 EPNdB. Not stated for Sottek Hearing Model fluctuation strength · ECMA-418-2:2025 (4th ed.); Psychoacoustic annoyance · Zwicker & Fastl (1999); Psychoacoustic annoyance · Widmann (1992). ## Before you compare numbers Implementations of the same metric can give different numbers without either being wrong. Check these choices first. - Statistics such as N5 take the nearest rank of the sorted time series, without interpolation (`get_exceeded_value`), and leave out the first `time_skip` seconds of the signal. - Statistics take the nearest rank of the sorted time series, without interpolation (`get_exceeded_value`), and leave out the first `time_skip` seconds; the code enforces at least 304 ms (it cites ECMA-418-2:2025, Section 8.1.4). - The single value is the 90th percentile from MATLAB's `prctile`, which interpolates; the other statistics take the nearest rank (`get_exceeded_value`). The first `time_skip` seconds are left out; the code enforces at least 320 ms (it cites ECMA-418-2:2025, Section 7.1.8). ## Notes - The README lists 61 studies and theses that use SQAT. - v2.0 (2026-10-15) came about 330 commits after v1.3 (2025-04-04); its release notes mark the changes to the sound level meter, ISO 532-1 loudness, Daniel & Weber roughness, Aures tonality and the annoyance models as not backward compatible. Most of the metric-correctness work of August–September 2026, and the graphical interface, came from an external contributor through about 20 pull requests. - The ECMA-418-2 functions come from the RefMap MATLAB code by Lotinga and Torjussen (University of Salford); the ISO 532-1 loudness was adapted in 2023 from Ella Manor's 2015 MATLAB code for AARAE. - v2.0 adds a graphical interface, `SQAT_GUI.m` ([#84](https://github.com/ggrecow/SQAT/pull/84)). It loads calibrated .wav files, plays them with waveform and spectrogram, runs the sound level meter and any SQAT metric, compares files in a table of single values and exports the results. The README says every value comes from the SQAT functions, so the interface gives the same results as the code; it recommends the interface for a few files and the functions for many. The header of `SQAT_GUI.m` and the commit that added it say that its layout follows the interface of pySQAT; the commit lists a dBFS calibration field, a channel selector, a results table and the Widmann (1992) annoyance model as going beyond pySQAT. - Open pull request: [#78](https://github.com/ggrecow/SQAT/pull/78) (ECMA-418-2 fluctuation strength). ## Before you rely on it - Releases up to and including v1.3 are licensed for non-commercial use only; v2.0 is under the GPL. - v2.0 is not backward compatible with v1.x. It corrects six deviations in ISO 532-1 time-varying loudness ([#48](https://github.com/ggrecow/SQAT/pull/48); test signal 10 deviated by 18.14 % in v1.3) and eight defects in Aures tonality ([#67](https://github.com/ggrecow/SQAT/issues/67)), rewrites Daniel & Weber roughness ([#65](https://github.com/ggrecow/SQAT/pull/65)), corrects the time weighting of the sound level meter ([#51](https://github.com/ggrecow/SQAT/pull/51); tone bursts with a duty cycle of 0.02 were reported 17.6 dB too low up to v1.3) and makes the annoyance calculation faster ([#42](https://github.com/ggrecow/SQAT/pull/42)). Results from v1.x and v2.0 differ. - The README warns that `main` may contain changes that are not yet fully verified and recommends using a release. ## Sources - https://github.com/ggrecow/SQAT/blob/main/README.md - https://github.com/ggrecow/SQAT/blob/main/LICENSE - https://github.com/ggrecow/SQAT/blob/main/citation.cff - https://github.com/ggrecow/SQAT/releases - https://github.com/ggrecow/SQAT/releases/tag/v2.0 - https://github.com/ggrecow/SQAT/issues/67 - https://github.com/ggrecow/SQAT/pull/48 - https://github.com/ggrecow/SQAT/pull/65 - https://github.com/ggrecow/SQAT/pull/78 - https://github.com/ggrecow/SQAT/pull/79 - https://github.com/ggrecow/SQAT/tree/v2.0/validation - https://github.com/ggrecow/SQAT/blob/v2.0/validation/Loudness_ISO532_1/2_synthetic_signals_time_varying_loudness/README.md - https://github.com/ggrecow/SQAT/blob/v2.0/validation/Tonality_Aures1985/README.md - https://github.com/ggrecow/SQAT/blob/v2.0/validation/sound_level_meter/README.md - https://github.com/ggrecow/SQAT/tree/main/validation/EPNL_FAR_Part36 - https://github.com/ggrecow/SQAT/tree/v1.3/validation - https://github.com/ggrecow/SQAT/blob/main/psychoacoustic_metrics/FluctuationStrength_Osses2016/FluctuationStrength_Osses2016.m - https://github.com/ggrecow/SQAT/blob/v2.0/psychoacoustic_metrics/Roughness_Daniel1997/Roughness_Daniel1997.m - https://github.com/ggrecow/SQAT/blob/v2.0/psychoacoustic_metrics/PsychoacousticAnnoyance_Zwicker1999/PsychoacousticAnnoyance_Zwicker1999.m - https://github.com/ggrecow/SQAT/blob/v2.0/gui/SQAT_GUI.m - https://github.com/ggrecow/SQAT/pull/84 --- # MoSQITo > 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/mosqito.html Python library for sound quality metrics: ISO 532-1 loudness, DIN 45692 sharpness, Daniel & Weber roughness, ECMA-418-2 hearing-model loudness (Clause 5) and roughness (2nd edition), tone-to-noise and prominence ratios, and the speech intelligibility index. Widely used, but without a release or a commit since April 2024. - **Repository:** https://github.com/Eomys/MoSQITo - **Documentation:** https://mosqito.readthedocs.io/en/latest/ - **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. A widely used project.) - **Licence:** Apache-2.0 - **Package:** PyPI `mosqito` (https://pypi.org/project/mosqito/) - **Install:** `pip install mosqito` - **Latest release:** v1.2.1 (2024-04) - **Last commit:** 2024-04-22 (inactive since 2024-04) - **GitHub stars:** 178 - **Maintainers:** Eomys / Green Forge Coop - **AI assistance:** not stated - **Paper:** San Millán-Castillo, R., Latorre-Iglesias, E., Glesser, M., Wanty, S., Jiménez-Caminero, D., & Álvarez-Jimeno, J. M. (2021). MOSQITO: an open-source and free toolbox for sound quality metrics in the industry and education. *INTER-NOISE 2021*, INCE Conference Proceedings 263(5), 1164–1175. https://doi.org/10.3397/IN-2021-1767 - **How to cite:** Cite the paper above. Software DOI: [10.5281/zenodo.11026796](https://doi.org/10.5281/zenodo.11026796). The repository has a [CITATION.cff](https://github.com/Eomys/MoSQITo/blob/master/CITATION.cff) file. Name the version or commit you used. - **Entry checked:** 2026-10-08 ## 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) (stationary (also per segment and from a spectrum) and time-varying; since 1.0.0) | `loudness_zwst`, `loudness_zwst_perseg`, `loudness_zwst_freq`, `loudness_zwtv` | available | standard or paper data (outcome not stated) | — | | [Sottek Hearing Model loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-ecma-418-2.html) | [ECMA-418-2:2022 (2nd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_2nd_edition_december_2022.pdf) (Clause 5 hearing-model specific and total loudness only; the Clause 8 loudness added in the 2nd edition is not implemented; since 1.2.0) | `loudness_ecma` | available | standard or paper data (outcome not stated) | Followed the 1st edition (2020) in versions 1.0.0–1.1.1 and the 2nd edition (2022) from 1.2.0. It grew out of the hearing model that Daniel Jiménez-Caminero added in May 2021, which is also kept in MoSQITo-FDP. | | [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html) | [DIN 45692:2009](https://www.dinmedia.de/en/standard/din-45692/117635111) (weightings: DIN 45692, Aures, von Bismarck, Fastl; since 1.0.2) | `sharpness_din_st`, `sharpness_din_tv`, `sharpness_din_perseg`, `sharpness_din_from_loudness`, `sharpness_din_freq` | available | standard or paper data (outcome not stated) | — | | [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) (since 1.0.0) | `roughness_dw`, `roughness_dw_freq` | available | standard or paper data (outcome not stated) | — | | [Sottek Hearing Model roughness](https://zhenxianli.github.io/LISQM/metrics/roughness-ecma-418-2.html) | [ECMA-418-2:2022 (2nd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_2nd_edition_december_2022.pdf) (since 1.2.0) | `roughness_ecma` | available | standard or paper data; also compared with ArtemiS SUITE (HEAD acoustics) | The documentation still lists it as under development. An open pull request (#95) fixes the low-pass filter range, which caused discrepancies with SQAT for time-varying signals. | | [Tonality (Aures)](https://zhenxianli.github.io/LISQM/metrics/tonality-aures.html) | [Aures (1985b)](https://zhenxianli.github.io/LISQM/standards.html#ref-aures-1985-euphony) | — | PR | not stated | Pull request from April 2026 following the improved Aures metric of Estreder et al. (2023); no maintainer reply. | | [Tone-to-noise ratio and prominence ratio](https://zhenxianli.github.io/LISQM/metrics/tone-to-noise-prominence-ratio.html) | [ECMA-74:2019 (17th ed.)](https://ecma-international.org/publications-and-standards/standards/ecma-74/) (since 1.0.2) | `tnr_ecma_st`, `tnr_ecma_perseg`, `tnr_ecma_freq`, `pr_ecma_st`, `pr_ecma_perseg`, `pr_ecma_freq` | available | not stated | Docstrings say "ECMA 418-1" without an edition; the helper code and the bibliography cite ECMA-74 Annex D (17th edition, 2019). | | [Tonal audibility (ISO 1996-2)](https://zhenxianli.github.io/LISQM/metrics/tonal-audibility-iso-1996-2.html) | [ISO 1996-2:2017](https://www.iso.org/standard/59766.html) (Annex K prominent-tone detection) | — | PR | not stated | Pull request from May 2022; no maintainer reply. | | [Equal-loudness contours](https://zhenxianli.github.io/LISQM/metrics/equal-loudness-contours.html) | [ISO 226:2003](https://www.iso.org/standard/34222.html) (since 0.3.5) | `equal_loudness_contours` | available | not stated | The docstring gives no edition; it is based on Jeff Tackett's MATLAB code for ISO 226:2003. | ## 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: standard or paper data (outcome not stated) - Ported or adapted from BASIC program of DIN 45631 (Zwicker et al., 1991). - Validation scripts use the ISO 532-1 Annex B test signals; the documentation marks it as validated. - [Sottek Hearing Model loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-ecma-418-2.html), ECMA-418-2:2022 (2nd ed.): standard or paper data (outcome not stated) - Validation scripts compare with figures of the standard. - [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html), DIN 45692:2009: standard or paper data (outcome not stated) - Validation scripts use the DIN 45692 test signals; the documentation marks it as validated. - [Roughness (Daniel & Weber)](https://zhenxianli.github.io/LISQM/metrics/roughness-daniel-weber.html), Daniel & Weber (1997): standard or paper data (outcome not stated) - The documentation marks it as validated against reference data. - [Sottek Hearing Model roughness](https://zhenxianli.github.io/LISQM/metrics/roughness-ecma-418-2.html), ECMA-418-2:2022 (2nd ed.): standard or paper data; also compared with ArtemiS SUITE (HEAD acoustics) - A unit test checks the standard's reference signal (1 kHz tone, 100 % amplitude-modulated at 70 Hz, 60 dB), which should give 1 asper, within ±0.1 asper. - A validation script compares the specific roughness of amplitude-modulated tones (carriers from 125 Hz to 4 kHz, 65 dB) with values computed in HEAD acoustics ArtemiS SUITE, within ±10 %. - [Tone-to-noise ratio and prominence ratio](https://zhenxianli.github.io/LISQM/metrics/tone-to-noise-prominence-ratio.html), ECMA-74:2019 (17th ed.): not stated - The documentation marks it as available but not validated. Not stated for Tonality (Aures) · Aures (1985b); Tonal audibility (ISO 1996-2) · ISO 1996-2:2017; Equal-loudness contours · ISO 226:2003. ## Before you compare numbers Implementations of the same metric can give different numbers without either being wrong. Check these choices first. - [Zwicker loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-zwicker.html) (ISO 532-1:2017): Signals sampled below 48 kHz are resampled to 48 kHz (FFT method) with a warning; time-varying loudness rejects rates above 48 kHz. ## Notes - Started by EOMYS in 2020. The default branch is `master`; its last commit and the last release (1.2.1) are both from 2024-04-22. - The documentation lists Soundscapy as a user; several other projects (PsychoBox, Sonemeter and others) wrap it. - Also computes the ANSI S3.5 speech intelligibility index (`sii_ansi`), which is outside the scope of this list. - Open, unanswered pull requests add Aures tonality ([#97](https://github.com/Eomys/MoSQITo/pull/97), 2026), ECMA-418-2 roughness fixes ([#95](https://github.com/Eomys/MoSQITo/pull/95), 2026) and an ISO 1996-2 Annex K tone detector ([#52](https://github.com/Eomys/MoSQITo/pull/52), 2022). - A C#/.NET port, Mosqito.NET, is listed separately; it was announced in issue [#98](https://github.com/Eomys/MoSQITo/issues/98). - The documentation lists hearing-model tonality (citing ECMA-74) as under development; there is no function for it. ## Before you rely on it - No maintainer has answered issues or pull requests opened since 2024, including bug reports on TNR/PR (#80, #81, #99) and on the ECMA-418-2 roughness low-pass filter (#92, #95). - `import mosqito` fails when matplotlib is not installed, because it is imported but not declared as a dependency ([#100](https://github.com/Eomys/MoSQITo/issues/100)); install matplotlib yourself. - Its ECMA-418-2 functions follow the 2nd edition (2022), two editions behind the current one. ## Sources - https://github.com/Eomys/MoSQITo/blob/master/README.md - https://github.com/Eomys/MoSQITo/blob/master/docs/source/user_guide/scope.rst - https://github.com/Eomys/MoSQITo/tree/master/validations - https://github.com/Eomys/MoSQITo/blob/master/tests/sq_metrics/roughness/test_roughness_ecma.py - https://github.com/Eomys/MoSQITo/blob/master/CITATION.cff - https://pypi.org/project/mosqito/ - https://github.com/Eomys/MoSQITo/issues/100 - https://github.com/Eomys/MoSQITo/pull/95 - https://github.com/Eomys/MoSQITo/pull/97 - https://github.com/Eomys/MoSQITo/blob/master/mosqito/sq_metrics/loudness/loudness_zwst/_main_loudness.py - https://github.com/Eomys/MoSQITo/commit/04dab16b64041c820c08177aa74039fb3fc3ed20 --- # sottek-hearing-model > 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/sottek-hearing-model.html Python implementation of the ECMA-418-2:2025 (4th edition) Sottek Hearing Model metrics: loudness and roughness (with binaural combination), tonality (per channel), and fluctuation strength on the main branch. Translated from the MATLAB code used in SQAT and the RefMap project. - **Repository:** https://github.com/mlotinga/sottek-hearing-model - **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. A very good implementation.) - **Licence:** GPL-3.0-only — The LICENSE file has always been GPL-3.0 and the project metadata was changed to GPL-3.0-only on 2026-08-31; the metadata of the current PyPI release (0.1.14) still says AGPL-3.0-only. - **Package:** PyPI `sottek-hearing-model` (https://pypi.org/project/sottek-hearing-model/) - **Install:** `pip install sottek-hearing-model` - **Latest release:** v0.1.14 (2026-03) - **Last commit:** 2026-09-18 (active) - **GitHub stars:** 23 - **Maintainers:** Mike Lotinga - **AI assistance:** not stated - **Paper:** Lotinga, M. J. B., Torjussen, M., & Felix Greco, G. (2025). Verified implementations of the Sottek psychoacoustic Hearing Model standardised sound quality metrics (ECMA-418-2 loudness, tonality and roughness). *Forum Acusticum / Euronoise 2025*, Málaga. https://doi.org/10.61782/fa.2025.0951 - **How to cite:** The README asks for the paper above, which published the MATLAB code the package was translated from, and gives a BibTeX entry for it. Name the version or commit you used. - **Entry checked:** 2026-10-08 ## What it implements | Metric | Edition | Functions | Status | Validation (as stated) | Notes | |---|---|---|---|---|---| | [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) (mono or stereo, with combined binaural output; since 0.1.9) | `shm_loudness_ecma`, `shm_loudness_ecma_from_comp` | available | standard or paper data (calibration signals and one recording); also compared with ArtemiS SUITE (HEAD acoustics) | — | | [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) (with combined binaural output; since 0.1.9) | `shm_roughness_ecma` | available | standard or paper data (reference signal and one recording); also compared with ArtemiS SUITE (HEAD acoustics) | — | | [Sottek Hearing Model fluctuation strength](https://zhenxianli.github.io/LISQM/metrics/fluctuation-strength-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) (needs at least 1.37 s of signal; binaural option) | `shm_fluctuation_ecma` | unreleased | compared with refmap-psychoacoustics (its source) and ArtemiS SUITE (HEAD acoustics) | Merged on 2026-09-18. Five departures from the printed text are documented (four equations and one interpretation of Section 9.1.8). | | [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) (since 0.1.9) | `shm_tonality_ecma` | available | standard or paper data (reference signal and one recording); also compared with ArtemiS SUITE (HEAD acoustics) | Optional experimental tonal-annoyance weighting (Sottek & Becker, 2019) since 0.1.14. | ## 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. **Checked by the maintainer of LISQM:** In personal use, Zhenxian LI found its results in very good agreement with those of HEAD acoustics ArtemiS SUITE. This is a personal check, not a published comparison. - [Sottek Hearing Model loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-ecma-418-2.html), ECMA-418-2:2025 (4th ed.): standard or paper data (calibration signals and one recording); also compared with ArtemiS SUITE (HEAD acoustics) - Ported or adapted from [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (the author's own code). - Unit tests check the standard's calibration signals (1 kHz, 40 dB gives 1 sone_HMS). - RefMap's verification compared the Python code, before it became this package, and the MATLAB original with HEAD acoustics ArtemiS v17.1 for the two calibration signals and a 30 s binaural street recording. - [Sottek Hearing Model roughness](https://zhenxianli.github.io/LISQM/metrics/roughness-ecma-418-2.html), ECMA-418-2:2025 (4th ed.): standard or paper data (reference signal and one recording); also compared with ArtemiS SUITE (HEAD acoustics) - Ported or adapted from [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (the author's own code). - Unit tests check the standard's reference signal, which should give 1 asper_HMS, at 48 and 44.1 kHz. - RefMap's verification against ArtemiS v17.1, as for loudness. - [Sottek Hearing Model fluctuation strength](https://zhenxianli.github.io/LISQM/metrics/fluctuation-strength-ecma-418-2.html), ECMA-418-2:2025 (4th ed.): compared with [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (its source) and ArtemiS SUITE (HEAD acoustics) - Ported or adapted from [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (the author's own code). It was compared with the code it was ported from, which checks the port only. - A draft report (18 September 2026) compares it with `acousticSHMFluctuation.m`, the MATLAB code it was translated from: equal to floating-point precision on the synthetic signals and on one channel of each recording, with a small difference in a short time window on the other channel. - Against HEAD acoustics ArtemiS SUITE v17: 0.994 against 1.003 vacil_HMS for the calibration signal (the standard's target is 1.0), −8 % to +12 % for the overall values of three binaural recordings, and correlations of 0.91 to 0.998 for the time-dependent values. - [Sottek Hearing Model tonality](https://zhenxianli.github.io/LISQM/metrics/tonality-ecma-418-2.html), ECMA-418-2:2025 (4th ed.): standard or paper data (reference signal and one recording); also compared with ArtemiS SUITE (HEAD acoustics) - Ported or adapted from [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (the author's own code). - Unit tests check the standard's reference signal, which should give 1 tu_HMS, at 48 and 44.1 kHz. - RefMap's verification against ArtemiS v17.1, as for loudness. ## Before you compare numbers Implementations of the same metric can give different numbers without either being wrong. Check these choices first. - Input at other sample rates is resampled to 48 kHz. - Overall roughness and fluctuation strength are 90th percentiles computed with NumPy (linear interpolation, Hyndman–Fan type 7). The MATLAB code it was translated from uses `prctile`, which interpolates differently, so single values can differ slightly from RefMap and SQAT. ## Notes - The paper verifies the MATLAB implementations of the 3rd edition, from which this package was translated; it does not cover the Python package itself. - Maintained by one person at the University of Salford (RefMap project). Requires Python 3.11 or newer. - pySQAT calls this package for its ECMA-418-2 metrics. ## Before you rely on it - Fluctuation strength is only on the main branch (not on PyPI yet) and its verification report is marked as a draft. - Versions up to 0.1.13 are affected by an empty-array bug fixed in 0.1.14 ([#9](https://github.com/mlotinga/sottek-hearing-model/issues/9)). ## Sources - https://github.com/mlotinga/sottek-hearing-model/blob/main/README.md - https://github.com/mlotinga/sottek-hearing-model/blob/main/LICENSE - https://github.com/mlotinga/sottek-hearing-model/blob/main/docs/validation/fluctuation_strength_verification.md - https://pypi.org/project/sottek-hearing-model/ - https://github.com/mlotinga/sottek-hearing-model/issues/9 - https://github.com/mlotinga/sottek-hearing-model/tree/main/tests - https://github.com/acoustics-code-salford/refmap-psychoacoustics/blob/main/validation/ECMA-418-2/README.md --- # acoustic-toolbox > 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/acoustic-toolbox.html Python acoustics library under the Université Gustave Eiffel GitHub organisation, continuing python-acoustics. For this list it is relevant for its tonal audibility and tonal adjustment after ISO 1996-2:2007. - **Repository:** https://github.com/Universite-Gustave-Eiffel/acoustic-toolbox - **Documentation:** https://acoustic-toolbox.readthedocs.io/ - **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:** BSD-3-Clause - **Package:** PyPI `acoustic-toolbox` (https://pypi.org/project/acoustic-toolbox/) - **Install:** `pip install acoustic-toolbox` - **Latest release:** v0.2.2 (2026-01) - **Last commit:** 2026-02-12 (active) - **GitHub stars:** 30 - **Maintainers:** Valentin Le Bescond, Andrew Mitchell - **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-08 ## What it implements | Metric | Edition | Functions | Status | Validation (as stated) | Notes | |---|---|---|---|---|---| | [Tonal audibility (ISO 1996-2)](https://zhenxianli.github.io/LISQM/metrics/tonal-audibility-iso-1996-2.html) | [ISO 1996-2:2007](https://www.iso.org/standard/41860.html) (tonal audibility and tonal adjustment) | `Tonality`, `tonal_audibility`, `tonal_adjustment` | available | own tests only | Module `acoustic_toolbox.standards.iso_1996_2_2007`, the same code lineage as python-acoustics. | ## 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. - [Tonal audibility (ISO 1996-2)](https://zhenxianli.github.io/LISQM/metrics/tonal-audibility-iso-1996-2.html), ISO 1996-2:2007: own tests only - Ported or adapted from [python-acoustics](https://zhenxianli.github.io/LISQM/projects/python-acoustics.html). - As in python-acoustics, the test of the examples in the standard is commented out. ## Notes - Based on python-acoustics (per the README) and keeps its git history; development under the new name started in July 2024. - It has no loudness, sharpness or roughness modules. ## Before you rely on it - It follows ISO 1996-2:2007, which has been withdrawn; ISO 1996-2:2017 replaced its tonal audibility method with those of Annexes J and K. ## Sources - https://github.com/Universite-Gustave-Eiffel/acoustic-toolbox - https://github.com/Universite-Gustave-Eiffel/acoustic-toolbox/blob/main/README.md - https://github.com/Universite-Gustave-Eiffel/acoustic-toolbox/blob/main/acoustic_toolbox/standards/iso_1996_2_2007.py - https://pypi.org/project/acoustic-toolbox/ - https://github.com/Universite-Gustave-Eiffel/acoustic-toolbox/blob/main/pyproject.toml - https://github.com/Universite-Gustave-Eiffel/acoustic-toolbox/blob/main/LICENSE - https://github.com/Universite-Gustave-Eiffel/acoustic-toolbox/commit/5acd2a101b730b3bb740f38c678d4b2f066beaae --- # AMT > 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/amt.html MATLAB/Octave toolbox of auditory models for reproducible research. Its loudness models include the Moore–Glasberg models for stationary sounds (`moore1997`, `chen2011`), time-varying sounds (`glasberg2002`) and binaural loudness (`moore2016`). - **Full name:** Auditory Modeling Toolbox - **Repository:** https://sourceforge.net/p/amtoolbox/code/ - **Homepage:** https://amtoolbox.org - **Language:** MATLAB, Octave - **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. A widely used toolbox for auditory modelling that also includes some psychoacoustic functions.) - **Licence:** GPL-3.0 — SourceForge lists the licence as GPLv3. The COPYING file of release 1.6.0 says that most files are under GPL 3.0 and some under other licences, each file stating its own; the headers of the loudness models (moore1997, glasberg2002, moore2016) allow version 3 or any later version. - **Package:** package `amtoolbox` (https://sourceforge.net/projects/amtoolbox/files/) - **Latest release:** 1.6.0 (2024-10) - **Last commit:** 2026-06-14 (active) - **Maintainers:** AMT Team, Acoustics Research Institute (Austrian Academy of Sciences) - **AI assistance:** not stated - **Paper:** Majdak, P., Hollomey, C., & Baumgartner, R. (2022). AMT 1.x: A toolbox for reproducible research in auditory modeling. *Acta Acustica*, 6, 19. https://doi.org/10.1051/aacus/2022011 - **How to cite:** Cite the paper above. Name the version or commit you used. - **Entry checked:** 2026-10-08 ## What it implements | Metric | Edition | Functions | Status | Validation (as stated) | Notes | |---|---|---|---|---|---| | [Moore–Glasberg loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg.html) | [Chen et al. (2011)](https://doi.org/10.1016/j.heares.2011.08.001) | `chen2011` | available | standard or paper data | Listed as "CHEN2011 - Fast excitation pattern estimation". | | [Moore–Glasberg loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg.html) | [Moore, Glasberg & Baer (1997)](https://aes2.org/publications/elibrary-page/?id=10272) | `moore1997` | available | standard or paper data | Listed as "MOORE1997 - Loudness model for stationary signals" in models/Contents.m. | | [Time-varying loudness (Moore–Glasberg–Schlittenlacher)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.html) | [Moore et al. (2016)](https://doi.org/10.1177/2331216516682698) (binaural) | `moore2016` | available | not stated | Listed as "MOORE2016 - Binaural loudness model". The header says Josef Schlittenlacher provided the original implementation for the AMT in 2018, from code written for ANSI S3.4-2007 and ISO 532-2:2017. | | [Time-varying loudness (Moore–Glasberg–Schlittenlacher)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.html) | [Glasberg & Moore (2002)](https://aes2.org/publications/elibrary-page/?id=11081) | `glasberg2002` | available | standard or paper data | Listed as "GLASBERG2002 - Loudness model for time-variant signals". | ## 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. - [Moore–Glasberg loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg.html), Chen et al. (2011): standard or paper data - Has the experiment script `exp_chen2011`; AMT's experiment scripts reproduce the results of the publication they are named after. - [Moore–Glasberg loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg.html), Moore, Glasberg & Baer (1997): standard or paper data - AMT's experiment scripts (`exp_…`) reproduce published results; this model has `exp_moore1997`. - [Time-varying loudness (Moore–Glasberg–Schlittenlacher)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.html), Moore et al. (2016): not stated - There is no `exp_moore2016` experiment script on the develop branch. - [Time-varying loudness (Moore–Glasberg–Schlittenlacher)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.html), Glasberg & Moore (2002): standard or paper data - Has the experiment script `exp_glasberg2002`; AMT's experiment scripts reproduce the results of the publication they are named after. ## Notes - Releases are published as downloads on SourceForge (`amtoolbox` and `amtoolbox-full`); the git repository's default branch is `develop`. The SourceForge project page mentions no GitHub or GitLab mirror. - Also contains `bramslow2004`, a loudness model considering hearing loss (AUDMOD), with the experiment script `exp_bramslow2004`; it has no reference entry in this list. - Neither the develop branch nor release 1.6.0 has a roughness, fluctuation strength, sharpness, tonality or annoyance model (`osses2021` is a monaural perceptual-similarity model). - Python ports of some of its loudness models exist: [torch_amt](https://github.com/StefanoGiacomelli/torch_amt) (`glasberg2002`, `moore2016`) and [NumpyLibforPsychoAcoustic](https://github.com/Ryrybros/NumpyLibforPsychoAcoustic) (`moore1997`, `glasberg2002`). There is no official Python package (amtoolbox and pyamtoolbox are not on PyPI). - The validation entries rest on AMT's design: each `exp_…` script is meant to reproduce figures of the model paper. The scripts' output was not checked for this list. ## Sources - https://sourceforge.net/projects/amtoolbox/ - https://sourceforge.net/projects/amtoolbox/files/ - https://sourceforge.net/p/amtoolbox/code/ci/develop/tree/models/ - https://sourceforge.net/p/amtoolbox/code/ci/1.6.0/tree/models/ - https://sourceforge.net/p/amtoolbox/code/ci/develop/tree/experiments/ - https://sourceforge.net/p/amtoolbox/code/ci/develop/log/ - https://github.com/StefanoGiacomelli/torch_amt/blob/main/README.md - https://sourceforge.net/projects/amtoolbox/files/AMT%201.x/ --- # refmap-psychoacoustics > 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/refmap-psychoacoustics.html Research code of the REFMAP project at the University of Salford, in MATLAB with Python ports. Implements ECMA-418-2:2025 loudness, tonality and roughness, and also sharpness, impulsiveness, psychoacoustic annoyance and aural detectability models. - **Repository:** https://github.com/acoustics-code-salford/refmap-psychoacoustics - **Language:** MATLAB, Python - **Kind:** Research code (Code published with a study, a thesis or a student project, to run or adapt; not packaged as a 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 — The licences disagree: the LICENSE file holds the GPL-3.0 text, while pyproject.toml declares "AGPL-3.0-only". Neither says whether later GPL versions are allowed. - **Latest release:** no release - **Last commit:** 2026-10-14 (active) - **GitHub stars:** 23 - **Maintainers:** Mike Lotinga - **AI assistance:** not stated - **Paper:** Lotinga, M. J. B., Torjussen, M., & Felix Greco, G. (2025). Verified implementations of the Sottek psychoacoustic Hearing Model standardised sound quality metrics (ECMA-418-2 loudness, tonality and roughness). *Forum Acusticum / Euronoise 2025*, Málaga. https://doi.org/10.61782/fa.2025.0951 - **How to cite:** The README asks for "Lotinga, M.J.B. (2026). refmap-psychoacoustics. GitHub." with the repository URL; the ECMA-418-2 code is described in the paper above. The repository has a [CITATION.cff](https://github.com/acoustics-code-salford/refmap-psychoacoustics/blob/main/citation.cff) file. Name the version or commit you used. - **Entry checked:** 2026-10-07 ## What it implements | Metric | Edition | Functions | Status | Validation (as stated) | Notes | |---|---|---|---|---|---| | [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) (binaural and specific loudness) | `acousticSHMLoudness`, `acousticSHMLoudnessFromComponent` | available | compared with ArtemiS SUITE (HEAD acoustics) | — | | [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html) | [DIN 45692:2009](https://www.dinmedia.de/en/standard/din-45692/117635111) (DIN 45692 weighting applied to ECMA-418-2 loudness) | `acousticSharpnessSHM`, `acousticSharpFromSHMLoud` | available | not stated | The DIN 45692 weighting is the option `widmann`; Aures (the default) and von Bismarck weightings are also offered. DIN 45692 itself is defined on Zwicker specific loudness. A further variant works from a Zwicker-based quasi-loudness (`acousticSharpFromQuasiLoud`). An inaccuracy in the Aures weighting was fixed on 2026-09-18. | | [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) | `acousticSHMRoughness` | available | compared with ArtemiS SUITE (HEAD acoustics) | — | | [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) | `acousticSHMTonality` | available | compared with ArtemiS SUITE (HEAD acoustics) | — | | [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) (Python, from precomputed metric values) | `diPA` | available | not stated | — | | [Psychoacoustic annoyance](https://zhenxianli.github.io/LISQM/metrics/psychoacoustic-annoyance.html) | [More (2010)](https://docs.lib.purdue.edu/dissertations/AAI3453255) (Python, from precomputed metric values) | `morePA` | available | not stated | — | | [Psychoacoustic annoyance](https://zhenxianli.github.io/LISQM/metrics/psychoacoustic-annoyance.html) | [Widmann (1992)](https://zhenxianli.github.io/LISQM/standards.html#ref-widmann-1992) | `acousticPsychAnnoy`, `widmannPA` | available | standard or paper data | The MATLAB header names the model Widmann (1992), "commonly misattributed to Zwicker". The Python `widmannPA` takes precomputed metric values. | | [Aural detectability](https://zhenxianli.github.io/LISQM/metrics/aural-detectability.html) | [Rizzi et al. (2025)](https://doi.org/10.2514/1.C038188) (MATLAB and Python) | `auralDetectability`, `aural_detect` | available | not stated | The same functions; the README cites this paper for the NASA development of the model. | | [Aural detectability](https://zhenxianli.github.io/LISQM/metrics/aural-detectability.html) | [Fidell et al. (1974)](https://doi.org/10.1177/001872087401600405) (MATLAB and Python) | `auralDetectability`, `auralDetectFromLeq`, `aural_detect`, `aural_detect_from_lzeqt` | available | not stated | Code headers describe the Fidell, Pearsons & Bennett (1974) model as "developed further by NASA" and cite "Rizzi, SA et al, 2024"; the README cites Rizzi et al. (2025), *Journal of Aircraft*, doi:10.2514/1.C038188. | ## 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. - [Sottek Hearing Model loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-ecma-418-2.html), ECMA-418-2:2025 (4th ed.): compared with ArtemiS SUITE (HEAD acoustics) - MATLAB and Python verified against HEAD acoustics ArtemiS v17.1 for a 1 kHz tone at 40 dB SPL, a 1 kHz tone amplitude-modulated at 70 Hz at 60 dB SPL and a 30 s binaural street recording. - The audio and reference results are on Zenodo (doi:10.5281/zenodo.18849587). - [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 ArtemiS SUITE (HEAD acoustics) - Verified against HEAD acoustics ArtemiS v17.1 with the same three signals as loudness. - [Psychoacoustic annoyance](https://zhenxianli.github.io/LISQM/metrics/psychoacoustic-annoyance.html), Widmann (1992): standard or paper data - A validation script (`validation/metrics/mlab/acousticPsychAnnoyValidation.m`) compares the MATLAB version with values from Widmann (1992). Not stated for Sharpness · DIN 45692:2009; Psychoacoustic annoyance · Di et al. (2016); Psychoacoustic annoyance · More (2010); Aural detectability · Rizzi et al. (2025); Aural detectability · Fidell et al. (1974). ## Notes - Its MATLAB ECMA-418-2 code is the origin of SQAT's ECMA-418-2 functions, of the Python package sottek-hearing-model, and through SQAT of MetaSona's ECMA-418-2 kernels. The Python functions `shm_loudness_ecma`, `shm_tonality_ecma` and `shm_roughness_ecma` in this repository import parts of the sottek-hearing-model package, so they are listed under that package rather than here. - The Python package defined in pyproject.toml (refmap-psychoacoustics 0.1.0) is not on PyPI. - Tonality has an optional tonal annoyance weighting after Sottek & Becker (2019), which is not part of ECMA-418-2. - Further metrics without an entry in this list: partial loudness and partial tonality of a target in a masker ("based on ECMA-418-2:2025", an extension of the standard), quasi-loudness from the spectral elements of ISO 532-1 with optional ISO 532-3:2023 or ECMA-418-2:2025 ear filters, tonal sharpness, and impulsiveness after Willemsen & Rao (2010) from ISO 532-1:2017 or ECMA-418-2:2025 loudness. - The Python code also has annoyance models after Willemsen et al. (2010), Torija et al. (2022) and Boucher et al. (2024), which have no reference entry in this list. - Also contains listening-test apps and analysis notebooks. - sottek-hearing-model's fluctuation strength was translated from `acousticSHMFluctuation.m`, which its verification report places in this repository; the file is not on the `main` branch (checked 2026-10-07). ## Before you rely on it - The README calls it "'work in progress' code for a research project. It is not a completed package or code library." - Some code comments still cite clauses of "ECMA 418-2:2022". ## Sources - https://github.com/acoustics-code-salford/refmap-psychoacoustics - https://github.com/acoustics-code-salford/refmap-psychoacoustics/blob/main/README.md - https://github.com/acoustics-code-salford/refmap-psychoacoustics/blob/main/validation/ECMA-418-2/README.md - https://github.com/acoustics-code-salford/refmap-psychoacoustics/blob/main/pyproject.toml - https://github.com/acoustics-code-salford/refmap-psychoacoustics/blob/main/LICENSE - https://doi.org/10.5281/zenodo.18849587 - https://pypi.org/project/sottek-hearing-model/ --- # AARAE > 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/aarae.html Audio and Acoustical Response Analysis Environment: a MATLAB environment with a graphical interface, made to support teaching and research in acoustics. Its analysers include ISO 532-1 and Chalupper–Fastl loudness, Moore–Glasberg loudness (stationary, time-varying and binaural), sharpness and Daniel & Weber roughness. - **Repository:** https://github.com/densilcabrera/aarae - **Language:** MATLAB - **Kind:** Application (A program to run, with a graphical or command-line interface; no programming needed.) - **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:** BSD-3-Clause — License for AARAE.txt says that contributed files may carry their own licences; for example, the ISO 226 calculator iso226.m comes with its own license.txt. - **Latest release:** no release - **Last commit:** 2024-08-09 (inactive since 2024-08) - **GitHub stars:** 36 - **Maintainers:** Densil Cabrera, Jonothan Holmes, Ella Manor - **AI assistance:** not stated - **Paper:** Cabrera, D., Jimenez, D., & Martens, W. L. (2014). Audio and Acoustical Response Analysis Environment (AARAE): a tool to support education and research in acoustics. *Proceedings of Inter-Noise 2014*, Melbourne, Australia. https://www.acoustics.asn.au/conference_proceedings/INTERNOISE2014/papers/p235.pdf - **How to cite:** Cite the paper above. Name the version or commit you used. - **Entry checked:** 2026-10-08 ## 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) (stationary and time-varying) | `Loudness_ISO532_1` | available | standard or paper data (time-varying signals only) | The header cites a 2014 draft of ISO 532-1 and describes the code as Ella Manor's 2015 MATLAB port, with adjustments, of the Annex A C code. | | [Zwicker loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-zwicker.html) | [Chalupper & Fastl (2002)](https://www.ingentaconnect.com/contentone/dav/aaua/2002/00000088/00000003/art00009) (time-varying) | `LoudnessCF` | available | not stated | Also outputs loudness fluctuation and time-varying sharpness. Josef Chalupper's code (2000) in its PsySound3 version (2007), adjusted for AARAE by Ella Manor in 2015. | | [Moore–Glasberg loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg.html) | [Moore, Glasberg & Baer (1997)](https://aes2.org/publications/elibrary-page/?id=10272) (one channel, or two channels for binaural loudness) | `Loudness_MGB2b` | available | not stated | A port and extension of PsySound3's code by Densil Cabrera and Doheon Lee, version 1.02 (27 October 2015). Two-channel input gives binaural loudness after Moore & Glasberg (2007). The audio is resampled to 32 kHz. | | [Time-varying loudness (Moore–Glasberg–Schlittenlacher)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.html) | [Glasberg & Moore (2002)](https://aes2.org/publications/elibrary-page/?id=11081) (time-varying; one channel, or two channels for binaural loudness) | `Loudness_MGB2b` | available | not stated | Same function as the stationary model; the binaural extension follows Moore & Glasberg (2007). | | [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html) | [Fastl & Zwicker (2007)](https://doi.org/10.1007/978-3-540-68888-4) (from the specific loudness of LoudnessCF) | `sharpness_Fastl` | available | not stated | The header describes a weighting fitted to data in Zwicker & Fastl's *Psychoacoustics: Facts and Models* (edition not stated), names the method "Fastl (1991)" and credits Claire Churchill (2004). | | [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) | `RoughnessDW` | available | not stated | Ported from PsySound3's `@RoughnessDW` by Ella Manor and Densil Cabrera (2015). | ## 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: standard or paper data (time-varying signals only) - Ported or adapted from ISO 532-1 Annex A reference program. - A commit of 2017-12-11 says the code was verified with the time-varying test signals of Annex B.5; no check of the stationary method is stated. - [Zwicker loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-zwicker.html), Chalupper & Fastl (2002); [Moore–Glasberg loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg.html), Moore, Glasberg & Baer (1997); [Time-varying loudness (Moore–Glasberg–Schlittenlacher)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.html), Glasberg & Moore (2002); [Roughness (Daniel & Weber)](https://zhenxianli.github.io/LISQM/metrics/roughness-daniel-weber.html), Daniel & Weber (1997): not stated - Ported or adapted from [PsySound3](https://zhenxianli.github.io/LISQM/projects/psysound3.html) (the author's own code). Not stated for Sharpness · Fastl & Zwicker (2007). ## Notes - `LoudnessZwickerISO532.m` computes Zwicker loudness with the ISO 532 one-third-octave filter bank; the edition is not stated. - `Fluctuation.m` (Ella Manor, 2017) implements the fluctuation-strength model of Zhou et al., "A Model for Calculating Psychoacoustical Fluctuation Strength" (JAES, September 2015), with 75 ERB channels and generalized modulation depth. - `Tonality_thirdoctmethod.m` (May 2015) implements the one-third-octave tonality methods of ISO 1996-2 (edition not stated) and AS/NZS 2107. - `iso226.m` calculates ISO 226 equal-loudness contours; the edition is not stated in its header. ## Before you rely on it - Runs inside MATLAB and needs several commercial toolboxes: Audio, DSP System, Signal Processing, and Statistics and Machine Learning; some parts also use others, such as Curve Fitting. - Apart from the ISO 532-1 analyser, the project does not state how the analysers were validated. ## Sources - https://github.com/densilcabrera/aarae - https://github.com/densilcabrera/aarae/blob/master/README.txt - https://github.com/densilcabrera/aarae/blob/master/License%20for%20AARAE.txt - https://github.com/densilcabrera/aarae/tree/master/Analysers/Level%20and%20Strength - https://github.com/densilcabrera/aarae/commits/master/Analysers/Level%20and%20Strength/Loudness_ISO532_1.m - https://github.com/densilcabrera/aarae/blob/master/Analysers/Level%20and%20Strength/Loudness_MGB2b.m - https://github.com/densilcabrera/aarae/blob/master/Analysers/Level%20and%20Strength/LoudnessCF.m --- # iso532-3 (tv2018.m) > 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/js2251-iso532-3.html MATLAB code by Brian C. J. Moore, Brian R. Glasberg and Josef Schlittenlacher (Cambridge Hearing Group) for the loudness of time-varying sounds: the model of Moore et al. (2016) with the revised time constants of Moore et al. (2018). Its readme calls `tv2018.m` "the reference Matlab code referred to in ISO 532-3". - **Repository:** https://github.com/js2251/iso532-3 - **Documentation:** https://github.com/js2251/iso532-3/blob/main/readme%20TVL%202018.pdf - **Language:** MATLAB - **Kind:** Reference program (Code published with a standard or by the authors of the model, as the reference for it.) - **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:** none — No licence file. The readme PDF says: "The code is provided free for any research purposes. For commercial use please contact Brian C. J. Moore." - **Latest release:** no release - **Last commit:** 2021-10-08 (inactive since 2021-10) - **GitHub stars:** 2 - **Maintainers:** Brian C. J. Moore, Brian R. Glasberg, Josef Schlittenlacher - **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-07 ## What it implements | Metric | Edition | Functions | Status | Validation (as stated) | Notes | |---|---|---|---|---|---| | [Time-varying loudness (Moore–Glasberg–Schlittenlacher)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.html) | [ISO 532-3:2023](https://www.iso.org/standard/69856.html) (reference MATLAB code referred to in ISO 532-3, per its readme) | `tv2018` | available | not stated | Written by the model's authors (per the readme PDF). | ## 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. - [Time-varying loudness (Moore–Glasberg–Schlittenlacher)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.html), ISO 532-3:2023: not stated - The folder "code for tables" has scripts that compute Table 5 (sone to phon) and the values of Annexes B and C (AnnexC.m is headed "Signals numbered as in ISO 532-2 Annex B"); the scripts do not name ISO 532-3. ## Notes - There is no README.md; the documentation is the PDF "readme TVL 2018", which includes a worked example with the file 1k100ms.wav. - Takes a WAV file or a MATLAB variable with one or two channels and resamples it to 32 kHz. Outer- and middle-ear transfer functions for free-field, diffuse-field and eardrum presentation are included. Returns short-term and long-term loudness and the instantaneous loudness of each ear. - Also contains sone/phon conversion functions for the TV2015 and TV2018 tables (`Phon2SoneTV2015`, `Sone2PhonTV2015`, `Phon2SoneTV2018`, `Sone2PhonTV2018`). - The Python project LoudnessModel is a translation of the Cambridge MATLAB code for the same model. - An [archived copy](https://web.archive.org/web/20251123130736/https://www.psychol.cam.ac.uk/hearing) of the Cambridge Hearing Group's programs page (November 2025) offers the TVL 2018 MATLAB code as a ZIP file: 23 of its 28 MATLAB files are identical to this repository, which adds the TV2018 conversion tables and the scripts for the standard's tables. The page itself now needs a University of Cambridge login. ## Before you rely on it - The code was last changed in October 2021, before ISO 532-3 was published (July 2023); the readme refers to "ISO 532-3 (2021)". Whether it is identical to the source code supplied with the published standard is not stated. - For its text-file output, `tv2018.m` converts sone to phon with `Sone2PhonTV2015`, although TV2018 conversion tables were added in October 2021. - The WAV files that the Annex B script reads are not in the repository, and no computed tables are stored. ## Sources - https://github.com/js2251/iso532-3 - https://github.com/js2251/iso532-3/blob/main/readme%20TVL%202018.pdf - https://github.com/js2251/iso532-3/blob/main/tv2018.m - https://github.com/js2251/iso532-3/tree/main/code%20for%20tables --- # ITA-Toolbox > 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/ita-toolbox.html MATLAB toolbox for acoustic measurements and signal processing from the Institute of Technical Acoustics, RWTH Aachen University, open source since 2010. Its psychoacoustics application computes stationary loudness after DIN 45631 / ISO 532 B, time-varying loudness after DIN 45631/A1, Daniel & Weber roughness and DIN 45681 tonality (2002 draft). - **Repository:** https://git.rwth-aachen.de/ita/toolbox - **Homepage:** https://www.ita-toolbox.org/ - **Language:** MATLAB - **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. A widely used toolbox for acoustic measurements and signal processing that also includes some psychoacoustic functions.) - **Licence:** BSD-4-Clause — The root license.txt (2011) is the four-clause BSD licence: advertising material that mentions the software must acknowledge the Institute of Technical Acoustics (RWTH Aachen University). The psychoacoustics files refer to a licence in their own folder, which contains none. - **Latest release:** no release - **Last commit:** 2025-09-22 (inactive since 2025-09) - **Maintainers:** Institute of Technical Acoustics (ITA), RWTH Aachen University - **AI assistance:** not stated - **Paper:** Berzborn, M., Bomhardt, R., Klein, J., Richter, J.-G., & Vorländer, M. (2017). The ITA-Toolbox: An open source MATLAB toolbox for acoustic measurements and signal processing. *Fortschritte der Akustik – DAGA 2017*, Kiel, 222–225. https://publications.rwth-aachen.de/record/687308 - **How to cite:** Cite the paper above. Name the version or commit you used. - **Entry checked:** 2026-10-07 ## What it implements | Metric | Edition | Functions | Status | Validation (as stated) | Notes | |---|---|---|---|---|---| | [Zwicker loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-zwicker.html) | [DIN 45631/A1:2010](https://www.dinmedia.de/en/standard/din-45631-a1/122476084) (time-varying, with N5) | `ita_loudness_timevariant` | available | standard or paper data (results plotted, not checked) | The header says "DIN 45631/A1" without a year; the function was written in August 2010, after the amendment was published. A code comment says the C code of the nonlinearity block was copied from the DIN document, "without its errors". | | [Zwicker loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-zwicker.html) | [DIN 45631:1991](https://www.dinmedia.de/en/standard/din-45631/1666531) (stationary; free or diffuse field) | `ita_loudness` | available | standard or paper data | The header says "DIN 45631 / ISO 532 B". The C core (`private/DIN45631.c`) is Aaron Hastings' version (2000) of the BASIC program published by Zwicker, Fastl, Widmann, Kurakata, Kuwano and Namba in J. Acoust. Soc. Jpn (E) 12(1), 1991. | | [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) | `ita_roughness_daniel` | available | standard or paper data (a code comment only) | Uses sub-functions written by Martin Klemenz in 2000 (`external_packages/roughness_daniel`). | | [Tonal components (DIN 45681)](https://zhenxianli.github.io/LISQM/metrics/tonality-din-45681.html) | [E DIN 45681:2002-11](https://zhenxianli.github.io/LISQM/standards.html#ref-din-45681-2002-draft) (maximum tonal audibility and its frequency) | `ita_tonality` | available | not stated | The header cites "DIN 45681 (2002)", the draft that preceded DIN 45681:2005. A code comment says that no A-weighting is applied. | ## 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), DIN 45631/A1:2010: standard or paper data (results plotted, not checked) - A test script plots the results for the amendment's test signals A to D (1 kHz tone pulses of 10 ms to 500 ms) against its tolerance bands; it does not check them automatically. - [Zwicker loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-zwicker.html), DIN 45631:1991: standard or paper data - Ported or adapted from BASIC program of DIN 45631 (Zwicker et al., 1991). - A test compares the loudness of a generated pink noise with 95.09 sone (GF), a value the test attributes to DIN 45631, within 5 %, with third-octave levels computed both by FFT and by filter bank. - [Roughness (Daniel & Weber)](https://zhenxianli.github.io/LISQM/metrics/roughness-daniel-weber.html), Daniel & Weber (1997): standard or paper data (a code comment only) - A code comment says that after major bug fixes the values "more or less match those of the paper by Daniel"; no test or comparison script is included. Not stated for Tonal components (DIN 45681) · E DIN 45681:2002-11. ## Before you compare numbers Implementations of the same metric can give different numbers without either being wrong. Check these choices first. - [Zwicker loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-zwicker.html) (DIN 45631/A1:2010): N5 is MATLAB's `prctile(N, 95)`. Blocks are 2 ms long without overlap by default, and the signal is processed at its own sample rate. - [Zwicker loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-zwicker.html) (DIN 45631:1991): Third-octave levels come from an FFT by default, or from a filter bank (`'mode', 'filter'`). ## Notes - The psychoacoustic functions were written in 2010 (Martin Guski: loudness; Daniel Cragg: roughness, tonality and sharpness) and are in `applications/Psychoacoustics`, last changed in September 2022. - `ita_sharpness` names no method; its weighting has the form of the DIN 45692 weighting, but as the code does not say which standard it follows, it is not listed as an implementation of DIN 45692. - The repository is on RWTH Aachen University's GitLab, which announces a move to gitlab.git.nrw, so its address may change. ## Before you rely on it - `ita_roughness_daniel` and `ita_sharpness` print that a newer version exists (`ita_psychoacoustic_roughness`, `ita_psychoacoustic_sharpness`). Those functions, like `ita_psychoacoustic_loudness` and `ita_psychoacoustic_fluctuationStrength` (2021), call the MATLAB Audio Toolbox, which is closed source, so they are not listed here. - There are no releases; use the default branch. ## Sources - https://git.rwth-aachen.de/ita/toolbox - https://git.rwth-aachen.de/ita/toolbox/-/blob/master/license.txt - https://git.rwth-aachen.de/ita/toolbox/-/tree/master/applications/Psychoacoustics - https://www.ita-toolbox.org/ - https://publications.rwth-aachen.de/record/687308 --- # PSYCHO > 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/pd-psycho.html Pure Data library of psychoacoustic objects (C externals and abstractions) from the author's research on dissonance models. Includes ISO 226:2003 equal-loudness contours and phon, sone and dB conversions, as well as roughness, sharpness and tonalness objects. - **Repository:** https://github.com/porres/pd-psycho - **Language:** Pure Data, C - **Kind:** Plug-in (Runs inside other software: a plug-in for an audio workstation, or a Pure Data external.) - **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 — LICENSE.txt holds the GPL v3 text; the only licence notice in the sources (roughness.c) allows any later version. - **Latest release:** 1.1 (2025-10) - **Last commit:** 2025-10-14 (inactive since 2025-10) - **GitHub stars:** 22 - **Maintainers:** Alexandre Torres Porres - **AI assistance:** not stated - **Paper:** Porres, A. T. (2011). Dissonance Model Toolbox in Pure Data. *Proceedings of the 4th Pure Data International Convention (PdCon11)*, Berlin. - **How to cite:** Cite the paper above. 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) | `[iso226]` | available | not stated | The help patch names ISO 226:2003. Related objects convert between phon and dB (`[phon2db]`, `[db2phon]`) and between phon and sone (`[phon2sone]`, `[sone2phon]`). | ## 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 roughness objects (`[roughness]`, `[roughcurve]`) compute the sensory dissonance of a spectrum given as lists of frequencies and amplitudes, with a model "derived from the work of Parncutt, Sethares, Vassilakis & Barlow"; this is not one of the signal-based roughness metrics in this list. - `[sharpness~]` is an abstraction built on `[barks~]` (24 Bark bands) and names no sharpness model. - Tonalness, pitch salience and commonality follow Parncutt & Strasburger (1994), after Terhardt; they are not tonality metrics in the sense of this list. - From the author's MSc and PhD work (2005–2012). Version 1.1 was released on 2025-10-14 (git tags 1.0 of 2019 and 1.1; no GitHub releases). It builds with pd-lib-builder. ## Before you rely on it - The README calls the library "still a work in progress". ## Sources - https://github.com/porres/pd-psycho - https://github.com/porres/pd-psycho/blob/master/README.md - https://github.com/porres/pd-psycho/blob/master/LICENSE.txt - https://github.com/porres/pd-psycho/tree/master/Classes - https://github.com/porres/pd-psycho/tree/master/Help-files --- # 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 --- # MetaSona > 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/metasona.html **Newly released project.** First released in September 2026. Not yet seen to be widely used in the community. Check its validation before relying on it. C library with a typed Python interface and prebuilt wheels, written to make repeated psychoacoustic analysis fast. Covers Zwicker loudness, DIN 45692 sharpness, Daniel–Weber roughness, Aures tonality and ECMA-418-2:2025 loudness, roughness and tonality. - **Repository:** https://github.com/huaaudio/metasona - **Documentation:** https://github.com/huaaudio/metasona/tree/main/docs - **Language:** C, 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:** newly released (First released less than about a year ago, and not yet seen to be widely used in the community.) - **Licence:** GPL-3.0-only AND Apache-2.0 AND BSD-3-Clause AND MIT — The combined distribution is GPL-3.0. MetaSona's own code is Apache-2.0; the ECMA-418-2 kernels (from SQAT/RefMap) and the current Aures tonality port are GPL-3.0; SQAT's ISO 532-1 filtering (BSD-3-Clause), SQAT's Daniel & Weber roughness (MIT), MoSQITo data (Apache-2.0) and PocketFFT (BSD-3-Clause) keep their notices. - **Package:** PyPI `metasona` (https://pypi.org/project/metasona/) - **Install:** `pip install metasona` - **Latest release:** v0.2.2 (2026-09) - **Last commit:** 2026-09-25 (active) - **GitHub stars:** 1 - **Maintainers:** Jiahua Zhang - **AI assistance:** disclosed — README and NOTICE state that it was developed with assistance from OpenAI Codex. - **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-08 ## 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) (stationary and time-varying; also from 28 third-octave levels; since 0.1.0) | `stationary_loudness`, `time_varying_loudness`, `loudness_from_levels` | available | compared with MoSQITo (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) (Clause 8 loudness with tonal/noise separation; mono or stereo; since 0.2.0) | `loudness_ecma`, `ecma_tonal_analysis` | available | compared with SQAT (its source) | Adapted from the SQAT/RefMap MATLAB code by Lotinga and Torjussen. | | [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html) | [DIN 45692:2009](https://www.dinmedia.de/en/standard/din-45692/117635111) (from specific loudness; since 0.1.0) | `sharpness_din45692` | available | not stated | — | | [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) (since 0.1.0) | `roughness_daniel_weber` | available | compared with SQAT (its source) | Follows SQAT revision `e6228b78`, which includes SQAT's September 2026 rewrite but not its later fix to the Terhardt filter bank (PR #77, in SQAT v2.0). | | [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) (mono or stereo; optional entropy weighting not applied; since 0.2.0) | `roughness_ecma` | available | compared with SQAT (its source) | Uses the standard's 20 ms grid and nominal calibration factor, where SQAT uses a slightly adjusted calibration. | | [Tonality (Aures)](https://zhenxianli.github.io/LISQM/metrics/tonality-aures.html) | [Aures (1985b)](https://zhenxianli.github.io/LISQM/standards.html#ref-aures-1985-euphony) (since 0.1.0) | `tonality_aures` | available | compared with SQAT (its source) | Follows SQAT's September 2026 revision (250 ms Hann windows, 125 ms hop). | | [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) (mono or stereo; since 0.2.0) | `tonality_ecma`, `ecma_tonal_analysis` | 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: compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (its source) - Ported or adapted from **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** and **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**. It was compared with the code it was ported from, which checks the port only. - Model tables taken from MoSQITo were checked element by element; one upper-slope value (0.22) follows the ISO 532-1 reference C table where MoSQITo uses 0.24. - The project says that detailed validation and reference comparisons are kept outside the repository; the results are not published. The README says standards conformance has not been established. - [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)** (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. - The project says that detailed validation and reference comparisons are kept outside the repository; the results are not published. - [Roughness (Daniel & Weber)](https://zhenxianli.github.io/LISQM/metrics/roughness-daniel-weber.html), Daniel & Weber (1997): 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)** and **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**. It was compared with the code it was ported from, which checks the port only. - The project says that detailed validation and reference comparisons are kept outside the repository; the results are not published. - The API documentation calls the function experimental and says normative validation remains open. - [Tonality (Aures)](https://zhenxianli.github.io/LISQM/metrics/tonality-aures.html), Aures (1985b): 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. - The project calls its source-based Python comparisons "development checks, not an executed MATLAB/Octave validation"; exact agreement with MATLAB is not established. - The results are not published. Not stated for Sharpness · DIN 45692:2009. ## Before you compare numbers Implementations of the same metric can give different numbers without either being wrong. Check these choices first. - Expects calibrated sound pressure in pascals. - The C functions require 48 kHz input; the Python interface resamples other rates to 48 kHz (SciPy `resample_poly`). - `time_skip_s` (default 0 s) leaves out the start of the signal from the reported frames; the computation still runs over the whole signal. Time-varying results include every complete frame, labelled at frame centres, which differs from SQAT's handling of the last frame and of time stamps. ## Notes - First commit and first PyPI release on 2026-09-16. - Ports SQAT revision `e6228b78` (2026-09-15), which includes the Daniel & Weber rewrite (#65) and the Aures tonality fixes (#66–#73) but not PR #77 (2026-09-17, in SQAT v2.0), a fix to the Terhardt filter bank that Daniel & Weber roughness uses. Model data come from MoSQITo; differences to both are listed in [THIRD_PARTY.md](https://github.com/huaaudio/metasona/blob/main/THIRD_PARTY.md). - The README reports speed-ups over MoSQITo 1.2.1 (e.g. 73× for time-varying loudness on its benchmark signal). ## Before you rely on it - Very new (first released in September 2026) and not yet seen to be widely used in the community; no independent verification has been published. - The README calls the current version experimental, particularly roughness and tonality, and says standards conformance has not been established. - Comparisons with SQAT and MoSQITo are described as kept outside the package repository, and the third-party notes say exact agreement with the MATLAB code is not established. ## Sources - https://github.com/huaaudio/metasona/blob/main/README.md - https://github.com/huaaudio/metasona/blob/main/THIRD_PARTY.md - https://github.com/huaaudio/metasona/blob/main/NOTICE - https://pypi.org/project/metasona/ - https://github.com/huaaudio/metasona/blob/main/python/metasona/_abi.py - https://github.com/huaaudio/metasona/blob/main/docs/c-api.md - https://github.com/huaaudio/metasona/blob/main/docs/python-api.md --- # ecma418-torch > 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/ecma418-torch.html **Newly released project.** First published on GitHub on 2026-10-11 (version 0.1.0 in its metadata); no release or PyPI package yet. Not yet seen to be widely used in the community. Check its validation before relying on it. Roughness (Clause 7) and fluctuation strength (Clause 9) of ECMA-418-2:2025 (4th edition) in PyTorch, differentiable end to end, with the binaural combination of two channels. The code cites the formula numbers of the standard and lists the places where it reads a printed formula differently. - **Repository:** https://github.com/agrathwohl/ecma418-torch - **Documentation:** https://github.com/agrathwohl/ecma418-torch#readme - **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:** newly released (First released less than about a year ago, and not yet seen to be widely used in the community.) - **Licence:** MIT - **Latest release:** no release - **Last commit:** 2026-10-11 (active) - **Maintainers:** Andrew Grathwohl - **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-17 ## What it implements | Metric | Edition | Functions | Status | Validation (as stated) | Notes | |---|---|---|---|---|---| | [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) (with binaural combination; without the optional entropy weighting of Section 7.1.6) | `roughness` | available | compared with sottek-hearing-model and ArtemiS SUITE (HEAD acoustics) | — | | [Sottek Hearing Model fluctuation strength](https://zhenxianli.github.io/LISQM/metrics/fluctuation-strength-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) (with binaural combination) | `fluctuation_strength` | available | compared with sottek-hearing-model and ArtemiS SUITE (HEAD acoustics) | — | ## 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. - [Sottek Hearing Model roughness](https://zhenxianli.github.io/LISQM/metrics/roughness-ecma-418-2.html), ECMA-418-2:2025 (4th ed.): compared with **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** and ArtemiS SUITE (HEAD acoustics) - The 1 kHz tone amplitude-modulated at 70 Hz (60 dB SPL) gives 0.9999987 asper for 10 s (the test allows 1e-4 around 1), and the average specific roughness in band 17 is 0.37348, against 0.374 from ArtemiS v17 as quoted in the tests of sottek-hearing-model. - Against sottek-hearing-model run as an oracle on three signals (the calibration tone, noise and a mixture of modulated tones and noise), the time-dependent values differ by at most 2e-5 asper and the single values by at most 2e-5; the README traces the residual to the rounded filter coefficients. - The tests also check that two identical channels give the mono result and that input at 44.1 kHz gives the 48 kHz result within 0.2 %. - [Sottek Hearing Model fluctuation strength](https://zhenxianli.github.io/LISQM/metrics/fluctuation-strength-ecma-418-2.html), ECMA-418-2:2025 (4th ed.): compared with **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** and ArtemiS SUITE (HEAD acoustics) - The 1 kHz tone amplitude-modulated at 4 Hz (60 dB SPL) gives 0.99579 vacil for 10 s (the test allows 1e-2 around 1), and the average specific fluctuation strength in band 17 is 0.38876, against 0.395 from ArtemiS v17 as quoted in the tests of sottek-hearing-model. - Against sottek-hearing-model run as an oracle on two signals: with that package's three choices, the time-dependent values differ by at most 6.3e-5 vacil and the single values by at most 6.3e-5; with the defaults, which follow the printed text, the single values differ by 0.2 % and 0.5 %. ## Before you compare numbers Implementations of the same metric can give different numbers without either being wrong. Check these choices first. - Input at other sample rates is resampled to 48 kHz (band-limited, by the Fourier method). - The single value is the 90th percentile from `torch.quantile` (linear interpolation) of the time-dependent values, after the first 16 (roughness) or 36 (fluctuation strength) values at 50 Hz are left out. - The outer and middle ear filter uses the coefficients as printed in Table 1 of the standard, where sottek-hearing-model uses unrounded ones. For single metrics: - [Sottek Hearing Model fluctuation strength](https://zhenxianli.github.io/LISQM/metrics/fluctuation-strength-ecma-418-2.html) (ECMA-418-2:2025 (4th ed.)): By default it follows the printed text in three places where sottek-hearing-model decides otherwise: the step limit of Formula (152) (2e-4 Hz, against 0.2), no fundamental required for an assumed order in Section 9.1.8, and machine epsilon for ε0 (against 1e-12). The options `newton_cap` and `require_fundamental` give sottek-hearing-model's choices. Formula (127) is computed with π instead of the printed 2π in the phase term, and Formula (144) without the printed "− 1", which the code says would shift every rate down one bin. ## Notes - The README describes the gradient as the derivative of the metric wherever the metric is differentiable; the tests check it against central differences and with the Taylor remainder (`tests/test_gradients.py`). - The tests run sottek-hearing-model as an oracle: its outputs for five test signals are stored in `tests/fixtures`, with the commit they were made with. The fluctuation strength of sottek-hearing-model used there is not in a release yet. - The README reports 22 s forward and 32 s backward for 240 s of stereo audio at 44.1 kHz on an RTX 3090 Ti (10.6 GiB peak memory), for roughness and fluctuation strength together. ## Before you rely on it - Very new (first published in October 2026) and not yet seen to be widely used in the community; no independent verification has been published. - Single author; one commit so far. ## Sources - https://github.com/agrathwohl/ecma418-torch/blob/master/README.md - https://github.com/agrathwohl/ecma418-torch/blob/master/LICENSE - https://github.com/agrathwohl/ecma418-torch/blob/master/pyproject.toml - https://github.com/agrathwohl/ecma418-torch/blob/master/benchmarks/evidence.md - https://github.com/agrathwohl/ecma418-torch/blob/master/tests/test_fidelity.py - https://github.com/agrathwohl/ecma418-torch/blob/master/tests/fixtures/make_oracle_fixtures.py - https://github.com/agrathwohl/ecma418-torch/blob/master/src/ecma418_torch/fluctuation.py --- # iso532-1-rs > 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/iso532-1-rs.html **Newly released project.** First version tagged in July 2026. Not yet seen to be widely used in the community. Check its validation before relying on it. Rust engine (README title "ISO532") for ISO 532-1:2017 Zwicker loudness: stationary, time-varying and a streaming interface, with a C ABI and a Python binding (PyO3/maturin). Only ISO 532-1 loudness is implemented. - **Repository:** https://github.com/cclin99/iso532-1-rs - **Language:** Rust, C, 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:** newly released (First released less than about a year ago, and not yet seen to be widely used in the community.) - **Licence:** Apache-2.0 - **Latest release:** 0.1.0 (2026-07) - **Last commit:** 2026-07-21 (active) - **GitHub stars:** 1 - **Maintainers:** cclin99 - **AI assistance:** disclosed — The README describes "An AI-assisted Rust engine" developed "through human-directed AI collaboration"; 16 commits from July 2026 carry Claude co-author lines, and the repository contains Codex agent configuration. - **How to cite:** The repository has a [CITATION.cff](https://github.com/cclin99/iso532-1-rs/blob/main/CITATION.cff) file. Name the version or commit you used. - **Entry checked:** 2026-10-06 ## 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) (stationary, time-varying and streaming; since 0.1.0) | `loudness_zwst`, `loudness_zwtv`, `ZwtvStream` | available | standard or paper data; also compared with MoSQITo | Python uses the same names (`iso532.loudness_zwst` …); the C API has `iso532_loudness_zwst`, `iso532_loudness_zwtv` and `iso532_stream_*`. | ## 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: standard or paper data; also compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** - Parity tests with MoSQITo 1.2.1 on nine synthetic and Annex B signals (worst reported difference 1.3e-9). - Checked separately against ISO 532-1 Annex B: the README reports stationary offsets of about +0.82 % and −0.76 % for signals 3 and 5, inside the standard's tolerance, and details signals 3, 5 and 10 in docs/ISO-ANNEXB-NUMERICAL-ERROR-2026-07-04.md. ## Notes - Not published on crates.io or PyPI (the crate and the Python module are named `iso532`). Version 0.1.0 exists as a git tag of 2026-07-19 and in CHANGELOG.md and CITATION.cff; there is no GitHub release. - MoSQITo 1.2.1 is the reference implementation, credited in THIRD_PARTY_NOTICES.md; the stationary front end follows MoSQITo's `noct_spectrum` path. - Expects calibrated pressure in pascals at 48 kHz. The stream outputs sone, phon and status flags on a 2 ms grid and marks the first 580 frames as warm-up. ## Before you rely on it - The MoSQITo golden data and the ISO Annex B fixtures are gitignored and must be regenerated locally; the README says "Hosted CI does not by itself prove the local MoSQITo/Annex B golden chain". ## Sources - https://github.com/cclin99/iso532-1-rs - https://github.com/cclin99/iso532-1-rs/blob/main/README.md - https://github.com/cclin99/iso532-1-rs/blob/main/CHANGELOG.md - https://github.com/cclin99/iso532-1-rs/blob/main/THIRD_PARTY_NOTICES.md - https://github.com/cclin99/iso532-1-rs/blob/main/docs/ISO-ANNEXB-NUMERICAL-ERROR-2026-07-04.md --- # Kirin Hypha > 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/kirin-hypha.html **Newly released project.** First public commit in April 2026; v1.0.0 was released in May 2026. Not yet seen to be widely used in the community. Check its validation before relying on it. Free PRE/POST measurement plug-in for mixing and mastering. Besides programme loudness (LUFS, ITU-R BS.1770), true peak and spectrum, it computes ISO 532-1 time-varying Zwicker loudness and DIN 45692 sharpness, ported from MoSQITo to Rust. - **Repository:** https://github.com/heyalohaloha/kirin_hypha - **Language:** Rust - **Kind:** Plug-in (Runs inside other software: a plug-in for an audio workstation, or a Pure Data external.) - **Group:** newly released (First released less than about a year ago, and not yet seen to be widely used in the community.) - **Licence:** GPL-3.0 - **Latest release:** v1.1.50 (2026-09) - **Last commit:** 2026-10-14 (active) - **GitHub stars:** 6 - **Maintainers:** Daisuke Nishio - **AI assistance:** disclosed — The repository contains `CLAUDE.md` and `AGENTS.md` files (instructions for AI coding agents), and its design notes refer to Claude Code and Codex work branches. - **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-07 ## 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) (time-varying, per channel at 48 kHz; stored in the recorded data; since 1.0.0) | `kirin_measure::phase_d` | available | compared with MoSQITo (its source) | Ported from MoSQITo v1.2.1. | | [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html) | [DIN 45692:2009](https://www.dinmedia.de/en/standard/din-45692/117635111) (from the time-varying specific loudness; shown in the plug-in; since 1.0.0) | `kirin_measure::phase_d::sharpness` | available | compared with MoSQITo (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: compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (its source) - Ported or adapted from **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**. It was compared with the code it was ported from, which checks the port only. - Tests assert specific loudness within a relative 1e-3 of MoSQITo. - [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html), DIN 45692:2009: compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (its source) - Ported or adapted from **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**. It was compared with the code it was ported from, which checks the port only. - Tests assert agreement with MoSQITo within 0.05 acum. ## Notes - The loudness and sharpness code is a port of MoSQITo v1.2.1 (`loudness_zwtv` and its stages); the sources and changes are listed in `THIRD_PARTY_NOTICES.md`. - Zwicker loudness N is computed and stored in the recorded data but is not one of the plug-in's display cells; sharpness is shown. For several channels, both are computed per channel and averaged. - Programme loudness (LUFS) and true peak follow ITU-R BS.1770, which is outside the scope of this list. ## Before you rely on it - The loudness engine works on mono audio at 48 kHz; the plug-in measures each input channel separately. ## Sources - https://github.com/heyalohaloha/kirin_hypha - https://github.com/heyalohaloha/kirin_hypha/blob/main/README.md - https://github.com/heyalohaloha/kirin_hypha/blob/main/THIRD_PARTY_NOTICES.md - https://github.com/heyalohaloha/kirin_hypha/tree/main/crates/kirin_measure/src/phase_d - https://github.com/heyalohaloha/kirin_hypha/releases --- # Mosqito.NET > 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/mosqito-net.html **Newly released project.** First published on GitHub in April 2026. Not yet seen to be widely used in the community. Check its validation before relying on it. C# (.NET 8) port of MoSQITo 1.2.1 with the same metrics: ISO 532-1 loudness, ECMA-418-2 (2nd edition) loudness and roughness, DIN 45692 sharpness, Daniel & Weber roughness, and ECMA-74 tone-to-noise and prominence ratios. - **Repository:** https://github.com/onur-akaydin/Mosqito.NET - **Language:** C# - **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:** newly released (First released less than about a year ago, and not yet seen to be widely used in the community.) - **Licence:** Apache-2.0 — NOTICE.md states that it is derived from MoSQITo 1.2.1 (Apache-2.0). - **Latest release:** no release - **Last commit:** 2026-06-07 (active) - **GitHub stars:** 0 - **Maintainers:** onur-akaydin - **AI assistance:** disclosed — The README says the port "was produced largely with AI assistance (Claude)"; most commits of 16 and 17 April 2026 have Claude as co-author. - **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-07 ## 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) (stationary (also per segment and from a spectrum) and time-varying) | `Sq.LoudnessZwst`, `Sq.LoudnessZwstFreq`, `Sq.LoudnessZwstPerSeg`, `Sq.LoudnessZwtv` | available | standard or paper data; also compared with MoSQITo (its source) | — | | [Sottek Hearing Model loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-ecma-418-2.html) | [ECMA-418-2:2022 (2nd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_2nd_edition_december_2022.pdf) (Clause 5 hearing-model loudness only, as in MoSQITo) | `Sq.LoudnessEcma` | available | compared with MoSQITo (its source) | — | | [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html) | [DIN 45692:2009](https://www.dinmedia.de/en/standard/din-45692/117635111) (weightings: DIN 45692, Aures, von Bismarck, Fastl) | `Sq.SharpnessDinSt`, `Sq.SharpnessDinTv`, `Sq.SharpnessDinPerSeg`, `Sq.SharpnessDinFreq` | available | compared with MoSQITo (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) | `Sq.RoughnessDw`, `Sq.RoughnessDwFreq` | available | compared with MoSQITo (its source) | — | | [Sottek Hearing Model roughness](https://zhenxianli.github.io/LISQM/metrics/roughness-ecma-418-2.html) | [ECMA-418-2:2022 (2nd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_2nd_edition_december_2022.pdf) | `Sq.RoughnessEcma` | available | compared with MoSQITo (its source) | — | | [Tone-to-noise ratio and prominence ratio](https://zhenxianli.github.io/LISQM/metrics/tone-to-noise-prominence-ratio.html) | [ECMA-74:2019 (17th ed.)](https://ecma-international.org/publications-and-standards/standards/ecma-74/) | `Sq.TnrEcmaSt`, `Sq.TnrEcmaFreq`, `Sq.TnrEcmaPerSeg`, `Sq.PrEcmaSt`, `Sq.PrEcmaFreq`, `Sq.PrEcmaPerSeg` | available | compared with MoSQITo (its source) | The README cites ECMA-74 Annex D. | | [Equal-loudness contours](https://zhenxianli.github.io/LISQM/metrics/equal-loudness-contours.html) | [ISO 226:2003](https://www.iso.org/standard/34222.html) | `Sq.EqualLoudnessContours` | available | not stated | Code comments say ISO 226:1987, but the tables are ported from MoSQITo, whose code follows Jeff Tackett's ISO 226:2003 implementation. | ## 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: standard or paper data; also compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (its source) - Ported or adapted from **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**. It was compared with the code it was ported from, which checks the port only. - Unit tests ported from MoSQITo compare stationary loudness with ISO 532-1 Annex B values. - Every public function is compared with the output of Python MoSQITo for seven WAV files (three of them ISO 532-1 test signals), within 1 % (0.5 dB for levels). - [Sottek Hearing Model loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-ecma-418-2.html), ECMA-418-2:2022 (2nd ed.); [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); [Sottek Hearing Model roughness](https://zhenxianli.github.io/LISQM/metrics/roughness-ecma-418-2.html), ECMA-418-2:2022 (2nd ed.); [Tone-to-noise ratio and prominence ratio](https://zhenxianli.github.io/LISQM/metrics/tone-to-noise-prominence-ratio.html), ECMA-74:2019 (17th ed.): compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (its source) - Ported or adapted from **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**. It was compared with the code it was ported from, which checks the port only. - Every public function is compared with the output of Python MoSQITo for seven WAV files (three of them ISO 532-1 test signals), within 1 % (0.5 dB for levels); MoSQITo's unit tests are ported too. Not stated for Equal-loudness contours · ISO 226:2003. ## Before you compare numbers Implementations of the same metric can give different numbers without either being wrong. Check these choices first. - Time-varying loudness and ECMA-418-2 roughness resample input at any other rate to 48 kHz, and stationary loudness resamples rates below 48 kHz; MoSQITo rejects rates above 48 kHz for time-varying loudness. ## Notes - First commit on 2026-04-16; 16 commits, the latest on 2026-06-07. There is no GitHub release. - Also ports MoSQITo's speech intelligibility index (ANSI S3.5), which is outside the scope of this list. ## Before you rely on it - Very new and not yet seen to be widely used in the community; the README asks users to validate results against their own reference data before relying on them. - Its ECMA-418-2 functions follow the 2nd edition (2022), two editions behind the current one, as in MoSQITo. ## Sources - https://github.com/onur-akaydin/Mosqito.NET - https://github.com/onur-akaydin/Mosqito.NET/blob/master/README.md - https://github.com/onur-akaydin/Mosqito.NET/blob/master/NOTICE.md - https://github.com/onur-akaydin/Mosqito.NET/commits/master/ - https://github.com/Eomys/MoSQITo/issues/98 --- # NumpyLibforPsychoAcoustic > 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/numpylib-psychoacoustic.html **Newly released project.** First published on GitHub in November 2025. Not yet seen to be widely used in the community. Check its validation before relying on it. Python (NumPy) adaptation of loudness models from the Auditory Modeling Toolbox (AMT), written as a second-year student project at Mines School of Nancy: the stationary model of Moore, Glasberg & Baer (1997) and the time-varying model of Glasberg & Moore (2002). - **Repository:** https://github.com/Ryrybros/NumpyLibforPsychoAcoustic - **Language:** Python - **Kind:** Research code (Code published with a study, a thesis or a student project, to run or adapt; not packaged as a library.) - **Group:** newly released (First released less than about a year ago, and not yet seen to be widely used in the community.) - **Licence:** none - **Latest release:** no release - **Last commit:** 2026-06-07 (active) - **GitHub stars:** 0 - **Maintainers:** Ryrybros - **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-06 ## What it implements | Metric | Edition | Functions | Status | Validation (as stated) | Notes | |---|---|---|---|---|---| | [Moore–Glasberg loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg.html) | [Moore, Glasberg & Baer (1997)](https://aes2.org/publications/elibrary-page/?id=10272) | `model.moore1997`, `equalSones.getEqualSones` | available | standard or paper data; also compared with AMT (its source) | — | | [Time-varying loudness (Moore–Glasberg–Schlittenlacher)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.html) | [Glasberg & Moore (2002)](https://aes2.org/publications/elibrary-page/?id=11081) | `model.glasberg2002` | available | not stated | Present in the code but not described in the implementation document. | ## 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. - [Moore–Glasberg loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg.html), Moore, Glasberg & Baer (1997): standard or paper data; also compared with [AMT](https://zhenxianli.github.io/LISQM/projects/amt.html) (its source) - Ported or adapted from [AMT](https://zhenxianli.github.io/LISQM/projects/amt.html). It was compared with the code it was ported from, which checks the port only. - The implementation document says the model is compared with the results shown in the original article (plots of its Fig. 8 and Fig. 12). - Numerical error reports (PDF) compare intermediate arrays, such as the outer- and middle-ear filter, with AMT's MATLAB output. Not stated for Time-varying loudness (Moore–Glasberg–Schlittenlacher) · Glasberg & Moore (2002). ## Notes - The implementation document says the Moore (1997) model is "the same code as the amt-toolbox one"; the data preparation follows AMT's Glasberg (2002) data function. - GitHub labels the repository TypeScript because of the React/Vite user interface in UI/Model_UI; the models are Python. ## Before you rely on it - No licence file, so reuse is not permitted by default. - The implementation document describes only the Moore (1997) model as implemented; `glasberg2002` is in the code (with data/Glasberg2002.json) but not documented. ## Sources - https://github.com/Ryrybros/NumpyLibforPsychoAcoustic - https://github.com/Ryrybros/NumpyLibforPsychoAcoustic/blob/main/README.md - https://github.com/Ryrybros/NumpyLibforPsychoAcoustic/blob/main/Documentation/Implementation_documentation.pdf - https://github.com/Ryrybros/NumpyLibforPsychoAcoustic/tree/main/Numerical_error_report --- # phonometry > 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/phonometry.html **Newly released project.** Its psychoacoustics module was first released in July 2026 (version 3.1.0). Not yet seen to be widely used in the community. Check its validation before relying on it. Python acoustics library (formerly PyOctaveBand) that added a large psychoacoustics module in July 2026: ISO 532-1, -2 and -3 loudness, ECMA-418-2:2025 loudness, tonality, roughness and fluctuation strength (monaural), DIN 45692 sharpness, Osses fluctuation strength, ECMA-418-1:2024 TNR/PR, tonal audibility, impulsiveness, EPNL and ISO 226:2023. Only NumPy and SciPy are required. - **Repository:** https://github.com/jmrplens/phonometry - **Documentation:** https://jmrplens.github.io/phonometry/ - **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:** newly released (First released less than about a year ago, and not yet seen to be widely used in the community.) - **Licence:** MIT - **Package:** PyPI `phonometry` (https://pypi.org/project/phonometry/) - **Install:** `pip install phonometry` - **Latest release:** v3.3.0 (2026-07); pre-release 4.0.0rc1 (2026-09) - **Last commit:** 2026-10-14 (active) - **GitHub stars:** 125 - **Maintainers:** José M. Requena Plens - **AI assistance:** disclosed — The draft paper (`paper/paper.md`) has an AI usage disclosure: language models drafted code, tests and documentation from the author's clause-by-clause readings, under the author's direction and review. 34 commits from July 2026 contain Claude Code session links. - **How to cite:** Software DOI: [10.5281/zenodo.21215280](https://doi.org/10.5281/zenodo.21215280). The repository has a [CITATION.cff](https://github.com/jmrplens/phonometry/blob/main/CITATION.cff) file. Name the version or commit you used. - **Entry checked:** 2026-10-08 ## 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) (stationary and time-varying; since 3.1.0) | `loudness_zwicker`, `loudness_zwicker_from_spectrum` | available | standard or paper data | — | | [Moore–Glasberg loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg.html) | [ISO 532-2:2017](https://www.iso.org/standard/63078.html) (with binaural inhibition; since 3.1.0) | `loudness_moore_glasberg`, `loudness_moore_glasberg_from_spectrum`, `loudness_moore_glasberg_from_third_octave` | available | standard or paper data | — | | [Time-varying loudness (Moore–Glasberg–Schlittenlacher)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.html) | [ISO 532-3:2023](https://www.iso.org/standard/69856.html) (since 3.1.0) | `loudness_moore_glasberg_time` | available | standard or paper data | — | | [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) (mono only; since 3.1.0) | `loudness_ecma` | available | standard or paper data (calibration signal only; outside the allowed adjustment) | — | | [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html) | [DIN 45692:2009](https://www.dinmedia.de/en/standard/din-45692/117635111) (also the informative Aures and von Bismarck variants; since 3.1.0) | `sharpness_din`, `sharpness_din_from_specific` | available | standard or paper data | — | | [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) (mono only; no entropy weighting; since 3.1.0) | `roughness_ecma` | available | standard or paper data (calibration signal only) | — | | [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) (since 3.1.0) | `fluctuation_strength` | available | standard or paper data; also compared with SQAT | — | | [Fluctuation strength (Osses et al.)](https://zhenxianli.github.io/LISQM/metrics/fluctuation-strength-osses.html) | [Fastl & Zwicker (2007)](https://doi.org/10.1007/978-3-540-68888-4) (closed-form expression for amplitude-modulated noise; since 3.1.0) | `fluctuation_strength_am_noise` | available | standard or paper data | — | | [Sottek Hearing Model fluctuation strength](https://zhenxianli.github.io/LISQM/metrics/fluctuation-strength-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) (mono only; since 3.3.0) | `fluctuation_strength_ecma` | available | standard or paper data (calibration signal only) | Misprints found in Clause 9 are listed in the project's errata. | | [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) (mono only; since 3.1.0) | `tonality_ecma` | available | standard or paper data (calibration signal only) | — | | [Tone-to-noise ratio and prominence ratio](https://zhenxianli.github.io/LISQM/metrics/tone-to-noise-prominence-ratio.html) | [ECMA-418-1:2024 (3rd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-1_3rd_edition_december_2024.pdf) (since 3.1.0) | `tone_to_noise_ratio`, `prominence_ratio`, `assess_tones` | available | standard or paper data (formula examples; no published TNR or PR value) | The "prominent" flag applies the numeric criterion only. | | [Audibility of tones in noise (ISO/TS 20065)](https://zhenxianli.github.io/LISQM/metrics/tonal-audibility-iso-20065.html) | [ISO/PAS 20065:2016](https://www.iso.org/standard/66941.html) (since 3.1.0) | `tone_audibility`, `analyze_spectrum`, `audibility_from_levels`, `mean_audibility`, `audibility_uncertainty` | available | standard or paper data; also compared with DIN 45681 Annex J reference program | Follows the 2016 PAS, not the 2022 TS. Does not apply the A-weighting required by clause 5.3.2. DIN 45681 itself is not implemented. | | [Tonal audibility (ISO 1996-2)](https://zhenxianli.github.io/LISQM/metrics/tonal-audibility-iso-1996-2.html) | [ISO 1996-2:2017](https://www.iso.org/standard/59766.html) (Annex K survey method and Table J.1; in the phonometry.environment namespace) | — | available | not stated | — | | [Tonal audibility (ISO 1996-2)](https://zhenxianli.github.io/LISQM/metrics/tonal-audibility-iso-1996-2.html) | [ISO 1996-2:2007](https://www.iso.org/standard/41860.html) (Annex C; in the phonometry.environment namespace) | — | available | not stated | — | | [Tonal audibility of wind turbines (IEC 61400-11)](https://zhenxianli.github.io/LISQM/metrics/tonal-audibility-iec-61400-11.html) | [IEC 61400-11:2012+AMD1:2018](https://webstore.iec.ch/en/publication/63367) | `wind_turbine_tonality` | available | not stated | — | | [Impulse prominence](https://zhenxianli.github.io/LISQM/metrics/impulsiveness.html) | [ISO/PAS 1996-3:2022](https://www.iso.org/standard/77035.html) (in the phonometry.environment namespace) | — | available | not stated | — | | [Impulse prominence](https://zhenxianli.github.io/LISQM/metrics/impulsiveness.html) | [NT ACOU 112](http://www.nordtest.info/wp/2002/05/01/acoustics-prominence-of-impulsive-sounds-and-for-adjustment-of-laeq-nt-acou-112/) (in the phonometry.environment namespace) | — | available | not stated | — | | [Psychoacoustic annoyance](https://zhenxianli.github.io/LISQM/metrics/psychoacoustic-annoyance.html) | [Zwicker & Fastl (1999)](https://doi.org/10.1007/978-3-662-09562-1) (since 3.1.0) | `psychoacoustic_annoyance`, `psychoacoustic_annoyance_from_signal` | available | own tests only | Follows Eqs. 16.2–16.4 of Fastl & Zwicker (2007), the textbook form of Widmann's model. | | [Equal-loudness contours](https://zhenxianli.github.io/LISQM/metrics/equal-loudness-contours.html) | [ISO 226:2023](https://www.iso.org/standard/83117.html) (since 3.1.0) | `equal_loudness_contour`, `equal_loudness_contours`, `loudness_level`, `hearing_threshold` | available | standard or paper data | — | | [Perceived noise level and EPNL](https://zhenxianli.github.io/LISQM/metrics/epnl.html) | [ICAO Annex 16, Vol. I](https://store.icao.int/en/annex-16-environmental-protection-volume-i-aircraft-noise) (PNL, PNLT and EPNL, in the phonometry.aircraft namespace) | — | available | standard or paper data | — | ## 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: standard or paper data - Ported or adapted from ISO 532-1 Annex A reference program. - Annex B test signals are used in the tests. - [Moore–Glasberg loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg.html), ISO 532-2:2017: standard or paper data - The documentation says it reproduces the Annex B tone and broadband cases to within a percent or two. - [Time-varying loudness (Moore–Glasberg–Schlittenlacher)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.html), ISO 532-3:2023: standard or paper data - A documented deviation: the Annex B WAV-file cases are not reproduced, and Annex C values are used instead. - [Sottek Hearing Model loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-ecma-418-2.html), ECMA-418-2:2025 (4th ed.): standard or paper data (calibration signal only; outside the allowed adjustment) - Checked at the calibration signal only, where it gives 0.9843 sone_HMS (−1.55 %). - [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html), DIN 45692:2009: standard or paper data - Checked with the DIN 45692 reference signal and Tables A.2 and A.3. - [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.): standard or paper data (calibration signal only) - Checked at the calibration signal only. - [Fluctuation strength (Osses et al.)](https://zhenxianli.github.io/LISQM/metrics/fluctuation-strength-osses.html), Osses et al. (2016): standard or paper data; also compared with **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** - Compared with the literature values in Table 1 of Osses et al. (2016): for amplitude-modulated 70 dB tones the Pearson correlation is about 0.98, within a factor of about 2.1 at every point. SQAT's `FluctuationStrength_Osses2016` was consulted as a numeric reference for the shape of the sweep. - Validated for amplitude modulation only; a steady 1 kHz tone reads about 0.09 vacil. - [Fluctuation strength (Osses et al.)](https://zhenxianli.github.io/LISQM/metrics/fluctuation-strength-osses.html), Fastl & Zwicker (2007): standard or paper data - A conformance row checks Eq. (10.2) of Fastl & Zwicker for amplitude-modulated broadband noise. - [Sottek Hearing Model fluctuation strength](https://zhenxianli.github.io/LISQM/metrics/fluctuation-strength-ecma-418-2.html), ECMA-418-2:2025 (4th ed.): standard or paper data (calibration signal only) - Checked at the calibration signal only (0.993 vacil_HMS). - [Tone-to-noise ratio and prominence ratio](https://zhenxianli.github.io/LISQM/metrics/tone-to-noise-prominence-ratio.html), ECMA-418-1:2024 (3rd ed.): standard or paper data (formula examples; no published TNR or PR value) - Tests check worked examples printed in ECMA-418-1:2024: the critical band at 500 Hz and 1 kHz (Clause 10, Formula 2), its band edges at 1 kHz (Clause 12.2) and the proximity spacing at 150 and 850 Hz (Clause 11.6, Formula 14). - TNR and PR of a 1 kHz tone in white noise are compared with the values expected from the standard's formulas (within 0.4 dB for TNR and 0.1 dB for PR); no TNR or PR value published in the standard is checked. - [Audibility of tones in noise (ISO/TS 20065)](https://zhenxianli.github.io/LISQM/metrics/tonal-audibility-iso-20065.html), ISO/PAS 20065:2016: standard or paper data; also compared with DIN 45681 Annex J reference program - Reproduces the Annex E worked example. - Parts are checked against DIN 45681:2005 and its Annex J reference program. - [Psychoacoustic annoyance](https://zhenxianli.github.io/LISQM/metrics/psychoacoustic-annoyance.html), Zwicker & Fastl (1999): own tests only - Tests compare one set of inputs (N5 = 30 sone, S = 2.0 acum, F = 0.5 vacil, R = 0.3 asper) with the value worked out by hand from Eqs. 16.2–16.4 (37.0478, within 0.001) and check the terms of the formula; no published example is used. - [Equal-loudness contours](https://zhenxianli.github.io/LISQM/metrics/equal-loudness-contours.html), ISO 226:2023: standard or paper data - Tests compare 17 points of Table B.1 (20 to 90 phon, 20 Hz to 12.5 kHz) and 6 points of Table B.2 with the computed contours and loudness levels, within 0.05 dB or phon, and the hearing threshold with Table 1. - [Perceived noise level and EPNL](https://zhenxianli.github.io/LISQM/metrics/epnl.html), ICAO Annex 16, Vol. I: standard or paper data - Tested with the EPNL example of ICAO Doc 9501 (Environmental Technical Manual). Not stated for Tonal audibility (ISO 1996-2) · ISO 1996-2:2017; Tonal audibility (ISO 1996-2) · ISO 1996-2:2007; Tonal audibility of wind turbines (IEC 61400-11) · IEC 61400-11:2012+AMD1:2018; Impulse prominence · ISO/PAS 1996-3:2022; Impulse prominence · NT ACOU 112. ## Before you compare numbers Implementations of the same metric can give different numbers without either being wrong. Check these choices first. - [Time-varying loudness (Moore–Glasberg–Schlittenlacher)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.html) (ISO 532-3:2023): Documented deviation: it runs at the native sample rate instead of resampling to 32 kHz. ## Notes - Renamed from PyOctaveBand (octave-band filtering) at 3.0.0 on 2026-07-06; the psychoacoustics module arrived in 3.1.0 on 2026-07-13. 873 of its 905 commits are from 2026. - The README reports 1793 of 1793 conformance checks passing across 519 standards, generated by the project's own CI ([CONFORMANCE.md](https://github.com/jmrplens/phonometry/blob/main/docs/CONFORMANCE.md)). - Keeps a public errata list of misprints found in standards, including ECMA-418-1:2024 and ECMA-418-2:2025 ([ERRATA.md](https://github.com/jmrplens/phonometry/blob/main/docs/ERRATA.md)). - A JOSS-format paper draft exists in the repository; no published paper yet. Version 4.0 (release candidate since 2026-09-10) moves modules. - Not implemented: Daniel & Weber roughness, Aures tonality, More and Di annoyance, and binaural combination for ECMA-418-2. ## Before you rely on it - Very new (psychoacoustics module first released in July 2026) and not yet seen to be widely used in the community; no independent verification has been published. - Single maintainer; all validation comes from the project's own tests. - The ECMA-418-2 checks only use the calibration signals, and no comparison with another implementation is reported. Its loudness reads 0.984 sone_HMS at the calibration point, which its own documentation says is outside the adjustment the standard allows. - Requires Python 3.13 or newer. ## Sources - https://github.com/jmrplens/phonometry/blob/main/README.md - https://github.com/jmrplens/phonometry/blob/main/CHANGELOG.md - https://github.com/jmrplens/phonometry/blob/main/docs/CONFORMANCE.md - https://github.com/jmrplens/phonometry/blob/main/docs/ERRATA.md - https://github.com/jmrplens/phonometry/blob/main/tests/psychoacoustics/quality/test_tonality.py - https://github.com/jmrplens/phonometry/blob/main/tests/psychoacoustics/quality/test_annoyance.py - https://github.com/jmrplens/phonometry/blob/main/tests/psychoacoustics/loudness/test_contours.py - https://github.com/jmrplens/phonometry/blob/main/CITATION.cff - https://github.com/jmrplens/phonometry/blob/main/paper/paper.md - https://jmrplens.github.io/phonometry/ - https://pypi.org/project/phonometry/ - https://github.com/jmrplens/phonometry/blob/main/src/phonometry/psychoacoustics/quality/fluctuation_strength.py --- # PsychoacousticMetrics.jl > 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/psychoacousticmetrics-jl.html **Newly released project.** First registered in July 2026. Not yet seen to be widely used in the community. Check its validation before relying on it. Julia package for the Zwicker family of sound-quality metrics on top of ZwickerLoudness.jl: DIN 45692:2009 sharpness (with Aures, von Bismarck and Fastl weightings), Daniel & Weber roughness, Osses et al. (2016) fluctuation strength and Widmann (1992) psychoacoustic annoyance. - **Repository:** https://github.com/slink/PsychoacousticMetrics.jl - **Language:** Julia - **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:** newly released (First released less than about a year ago, and not yet seen to be widely used in the community.) - **Licence:** MIT — Test data, the roughness implementation and several weighting tables are derived from MoSQITo (Apache-2.0); fluctuation-strength tables and annoyance constants reference SQAT (CC BY-NC 4.0) as factual data, without reusing its code (README, test/data/NOTICE). - **Package:** Julia General `PsychoacousticMetrics` (https://juliahub.com/ui/Packages/General/PsychoacousticMetrics) - **Install:** `using Pkg; Pkg.add("PsychoacousticMetrics")` - **Latest release:** v0.5.0 (2026-09) - **Last commit:** 2026-09-03 (active) - **GitHub stars:** 1 - **Maintainers:** slink - **AI assistance:** not stated - **How to cite:** The README links a [Zenodo DOI](https://zenodo.org/badge/latestdoi/1292553110) for the latest version. Name the version or commit you used. - **Entry checked:** 2026-10-08 ## What it implements | Metric | Edition | Functions | Status | Validation (as stated) | Notes | |---|---|---|---|---|---| | [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html) | [DIN 45692:2009](https://www.dinmedia.de/en/standard/din-45692/117635111) (weightings: DIN 45692 (default), Aures, von Bismarck, Fastl; from a ZwickerLoudness.jl result; since 0.2.0) | `sharpness` | available | standard or paper data; also compared with MoSQITo | — | | [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) (since 0.2.0) | `roughness_dw` | available | standard or paper data; also compared with MoSQITo (its source) | — | | [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) (since 0.3.0) | `fluctuation_strength_osses` | available | reference code: SQAT | — | | [Psychoacoustic annoyance](https://zhenxianli.github.io/LISQM/metrics/psychoacoustic-annoyance.html) | [Widmann (1992)](https://zhenxianli.github.io/LISQM/standards.html#ref-widmann-1992) (percentile convention (N5, S5, R5, FS5) and a stationary approximation; since 0.4.0) | `psychoacoustic_annoyance_widmann` | available | compared with SQAT | — | ## 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. - [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html), DIN 45692:2009: standard or paper data; also compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** - Tested against all 41 reference signals of DIN 45692:2009 chapter 6 (21 narrowband, 20 broadband) within the standard's tolerance of ±max(5 %, 0.05 acum). - Cross-checked against MoSQITo for all four weightings. - Total loudness N is computed as the Riemann sum over the 240-bin specific loudness (`0.1 * sum`), not taken from `ZwickerResult.loudness` (see the `sharpness` docstring). - [Roughness (Daniel & Weber)](https://zhenxianli.github.io/LISQM/metrics/roughness-daniel-weber.html), Daniel & Weber (1997): standard or paper data; also compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (its source) - Ported or adapted from **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**. It was compared with the code it was ported from, which checks the port only. - Tested against the Zwicker & Fastl reference curves on MoSQITo's validation grid (7 carrier × 11 modulation frequencies) within ±0.1 asper, and cross-checked against MoSQITo's `roughness_dw` on identical signals. - Five points at a 2 kHz carrier miss the ±0.1 asper gate. MoSQITo misses them by the same amount (and overshoots Daniel & Weber's own curve there by 15–31 %), so these five are checked for agreement with MoSQITo to 5e-3 asper instead. - Against the Daniel & Weber curves themselves, 63 of the 77 grid points are within 30 % of the reference (reported, not gated). - [Fluctuation strength (Osses et al.)](https://zhenxianli.github.io/LISQM/metrics/fluctuation-strength-osses.html), Osses et al. (2016): reference code: **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** - Cross-checked against SQAT's `FluctuationStrength_Osses2016`, run under Octave, on identical signals: 26 cases, including all 18 points of Fastl & Zwicker's AM/FM reference grid (Osses 2018 thesis, Table B.1), each reproduced to a relative tolerance of 1e-6 (measured 3e-9). - The grid stimuli are synthesised following the Osses et al. (2016) validation files that SQAT's own validation reads; the tests also check that each synthetic stimulus gives the value SQAT gives on the real file (tones to 5e-3, noise to 25 % across random draws). - Against the published curves, 11 of the 18 points are within 30 %, and exactly those 11 are gated. The other seven are misses of the reference model itself (FM tones with a modulation frequency above 4 Hz overestimated three- to fourfold, thesis §B.4.1; the shoulder and tail points of AM tones and noise), which SQAT's own validation figures also show. - [Psychoacoustic annoyance](https://zhenxianli.github.io/LISQM/metrics/psychoacoustic-annoyance.html), Widmann (1992): compared with **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** - Cross-checked against SQAT's `PsychoacousticAnnoyance_Widmann1992`: an 840-case formula grid, reproduced bit-exactly, and six signal-level cases with SQAT's own N5, S5, R5 and FS5 vendored, so that every deviation is attributed to a component. - Checked at the published 1 au anchor (a 1 kHz tone at 40 dB SPL): on the 4 s cross-check case, the percentile convention lands 0.1 % from it and the stationary approximation 0.8 %; on the README's 5 s examples, 0.3 % and 1.4 %. ## Before you compare numbers Implementations of the same metric can give different numbers without either being wrong. Check these choices first. - [Fluctuation strength (Osses et al.)](https://zhenxianli.github.io/LISQM/metrics/fluctuation-strength-osses.html) (Osses et al. (2016)): Needs audio at 44.1 or 48 kHz (an error otherwise); SQAT resamples other rates itself. - [Psychoacoustic annoyance](https://zhenxianli.github.io/LISQM/metrics/psychoacoustic-annoyance.html) (Widmann (1992)): The percentile form needs 48 kHz input. Percentiles are Hyndman–Fan type 7 quantiles (linear interpolation); SQAT takes the nearest rank, which the README says differs by a full order-statistic step on the coarse fluctuation-strength track. ## Notes - Roughness follows MoSQITo's `roughness_dw` ("as implemented by MoSQITo"), not Daniel and Weber's original code. - Annoyance comes in two forms: the canonical percentile convention (N5, S5, R5 and FS5 from time-varying tracks, since 0.5.0) and a documented stationary approximation from whole-signal values (since 0.4.0). ## Sources - https://github.com/slink/PsychoacousticMetrics.jl - https://github.com/slink/PsychoacousticMetrics.jl/blob/main/README.md#conformance - https://github.com/slink/PsychoacousticMetrics.jl/blob/main/test/data/NOTICE - https://github.com/slink/PsychoacousticMetrics.jl/blob/main/Project.toml - https://github.com/JuliaRegistries/General/tree/master/P/PsychoacousticMetrics --- # rota-order > 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/rota-order.html **Newly released project.** First released in October 2026; the README calls it pre-alpha. Not yet seen to be widely used in the community. Check its validation before relying on it. Order analysis of noise and vibration from rotating machinery such as engines, electric motors and gearboxes. It finds the shaft speed from a tachometer or from the signal itself, resamples signals to the shaft angle, computes Campbell and order maps, extracts and removes orders with a Vold-Kalman filter, resynthesises sound from order tables and plots these results. On top of this it computes the ECMA-418-1:2024 tone-to-noise ratio and prominence ratio of machine orders along a run-up, and its wrappers compute loudness, sharpness, roughness and tonality with MoSQITo, sottek-hearing-model or SQAT and bin the results along rpm. - **Full name:** ROTA: Rotational Order Tracking and Analysis - **Repository:** https://github.com/ZhenxianLi/rota-order - **Documentation:** https://github.com/ZhenxianLi/rota-order#readme - **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:** newly released (First released less than about a year ago, and not yet seen to be widely used in the community.) - **Licence:** GPL-3.0-or-later - **Package:** PyPI `rota-order` (https://pypi.org/project/rota-order/) - **Install:** `pip install rota-order` - **Latest release:** 0.7.0 (2026-10) - **Last commit:** 2026-10-28 (active) - **Maintainers:** Zhenxian LI - **AI assistance:** disclosed — The README says that Claude (Anthropic) was used as an assistant during development. - **How to cite:** The README points to `CITATION.cff` ("Cite this repository" on GitHub); a Zenodo DOI is planned for version 1.0. The repository has a [CITATION.cff](https://github.com/ZhenxianLi/rota-order/blob/main/CITATION.cff) file. Name the version or commit you used. - **Entry checked:** 2026-10-28 ## 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) (time-varying, through MoSQITo's loudness_zwtv; since 0.6.0) | `rota.bridges.mosqito.loudness` | available | own tests only | — | | [Zwicker loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-zwicker.html) | [ISO 532-1:2017](https://www.iso.org/standard/63077.html) (time-varying, through SQAT v2.0's Loudness_ISO532_1 in MATLAB; since 0.6.0) | `rota.bridges.sqat.loudness` | available | own tests only | — | | [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) (through sottek-hearing-model's shm_loudness_ecma_from_comp; since 0.6.0) | `rota.bridges.sottek_hearing_model.loudness` | available | own tests only | — | | [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html) | [DIN 45692:2009](https://www.dinmedia.de/en/standard/din-45692/117635111) (through MoSQITo's sharpness_din_from_loudness; since 0.6.0) | `rota.bridges.mosqito.sharpness` | available | own tests only | — | | [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html) | [DIN 45692:2009](https://www.dinmedia.de/en/standard/din-45692/117635111) (through SQAT v2.0's Sharpness_DIN45692_from_loudness in MATLAB; since 0.6.0) | `rota.bridges.sqat.sharpness` | available | own tests only | — | | [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) (through MoSQITo's roughness_dw; since 0.6.0) | `rota.bridges.mosqito.roughness` | available | own tests only | — | | [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) (through SQAT v2.0's Roughness_Daniel1997 in MATLAB; since 0.6.0) | `rota.bridges.sqat.roughness` | available | own tests only | — | | [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) (through sottek-hearing-model's shm_roughness_ecma; since 0.6.0) | `rota.bridges.sottek_hearing_model.roughness` | available | own tests only | — | | [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) (through sottek-hearing-model's shm_tonality_ecma; since 0.6.0) | `rota.bridges.sottek_hearing_model.tonality` | available | own tests only | — | | [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) (through SQAT v2.0's Tonality_ECMA418_2 in MATLAB; since 0.6.0) | `rota.bridges.sqat.tonality` | available | own tests only | — | | [Tone-to-noise ratio and prominence ratio](https://zhenxianli.github.io/LISQM/metrics/tone-to-noise-prominence-ratio.html) | [ECMA-418-1:2024 (3rd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-1_3rd_edition_december_2024.pdf) (tones in a power spectrum, and orders of a rotating machine along a run-up; since 0.5.0) | `rota.tonal.tone_prominence`, `rota.tonal.order_prominence`, `rota.tonal.prominence_criterion` | available | standard or paper data (formula examples; no published TNR or PR value); also compared with MoSQITo | The "prominent" flag applies the numeric criterion only; the aural check of audibility (Sections 11.8 and 12.8) is not assessed. | ## 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 (time-varying, through MoSQITo's loudness_zwtv): own tests only - Tests, which run only where MoSQITo is installed (the project's continuous integration does not install it), check that the wrapper returns what a direct call of MoSQITo gives on the same signal, also after resampling to 48 kHz, that the calibration factor scales the loudness, and that `vs_rpm` gives what binning the values by hand gives. - [Zwicker loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-zwicker.html), ISO 532-1:2017 (time-varying, through SQAT v2.0's Loudness_ISO532_1 in MATLAB); [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html), DIN 45692:2009 (through SQAT v2.0's Sharpness_DIN45692_from_loudness in MATLAB); [Roughness (Daniel & Weber)](https://zhenxianli.github.io/LISQM/metrics/roughness-daniel-weber.html), Daniel & Weber (1997) (through SQAT v2.0's Roughness_Daniel1997 in MATLAB); [Sottek Hearing Model tonality](https://zhenxianli.github.io/LISQM/metrics/tonality-ecma-418-2.html), ECMA-418-2:2025 (4th ed.) (through SQAT v2.0's Tonality_ECMA418_2 in MATLAB): own tests only - Tests with a stub engine check the call passed to SQAT and the conversion of its output; the comparison with a direct SQAT call runs only where MATLAB and SQAT v2.0 are installed. - [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.): own tests only - Tests, which run only where sottek-hearing-model is installed (the project's continuous integration does not install it), check that the wrapper returns what a direct call of the package gives. - [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html), DIN 45692:2009 (through MoSQITo's sharpness_din_from_loudness): own tests only - Tests, which run only where MoSQITo is installed (the project's continuous integration does not install it), check that the wrapper returns what a direct call of MoSQITo gives, also when the sharpness is computed from an earlier loudness result. - [Roughness (Daniel & Weber)](https://zhenxianli.github.io/LISQM/metrics/roughness-daniel-weber.html), Daniel & Weber (1997) (through MoSQITo's roughness_dw): own tests only - Tests, which run only where MoSQITo is installed (the project's continuous integration does not install it), check that the wrapper returns what a direct call of MoSQITo gives. - [Sottek Hearing Model tonality](https://zhenxianli.github.io/LISQM/metrics/tonality-ecma-418-2.html), ECMA-418-2:2025 (4th ed.) (through sottek-hearing-model's shm_tonality_ecma): own tests only - Tests, which run only where sottek-hearing-model is installed (the project's continuous integration does not install it), check that the wrappers return what direct calls of the package give, that one speed bin reproduces the package's single values, and that the dominant tonal frequency of a tone in noise maps to its order. - [Tone-to-noise ratio and prominence ratio](https://zhenxianli.github.io/LISQM/metrics/tone-to-noise-prominence-ratio.html), ECMA-418-1:2024 (3rd ed.): standard or paper data (formula examples; no published TNR or PR value); also compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** - Tests check worked examples printed in ECMA-418-1:2024: the critical bandwidth at 500 Hz and 1 kHz (Clause 10), the band edges at 1 kHz (Clause 12.2) and the proximity spacing at 150 and 850 Hz (Clause 11.6). The criteria are checked at 100 Hz, 1 kHz and 5 kHz. - TNR and PR of tones at 140 Hz, 1 kHz and 3 kHz in white noise are compared with the values that the standard's formulas give for the known tone and noise powers, within 0.5 dB; on spectra built line by line they agree to within 1e-9 dB for TNR and 0.03 dB for PR. No TNR or PR value published in the standard is checked. - For an order in a synthetic run-up, `order_prominence` gives the TNR within 1 dB of the analytic value in every speed bin, with a mean error below 0.4 dB. - A test compares the TNR of tones at 130 Hz to 4 kHz in flat noise with MoSQITo's `tnr_ecma_st` and requires agreement within 1.5 dB. MoSQITo follows ECMA-74:2019, so the comparison crosses editions. The test runs only where MoSQITo is installed, which the project's continuous integration does not do. ## Before you compare numbers Implementations of the same metric can give different numbers without either being wrong. Check these choices first. - The method `vs_rpm` of a wrapper's result bins it along rpm after leaving out the start of the signal: by default it takes in each speed bin the 95th percentile of the loudness (N5), the median of the sharpness and the 90th percentile of the roughness, after 0.6 s for loudness and sharpness and 1.5 s for roughness. Keyword arguments override these choices. - For the ECMA-418-2 metrics, `vs_rpm` takes by default the mean of the loudness and the tonality in each speed bin, the tonality only above 0.02 tu_HMS, and the 90th percentile of the roughness, after about 0.3 s (0.6 s for SQAT's tonality). - Input in any unit is turned into sound pressure in Pa by an explicit calibration factor and resampled to 48 kHz. For single metrics: - [Tone-to-noise ratio and prominence ratio](https://zhenxianli.github.io/LISQM/metrics/tone-to-noise-prominence-ratio.html) (ECMA-418-1:2024 (3rd ed.)): `order_prominence` analyses orders on the order-tracked (angle-domain) spectrum, so that an order stays one spectral line in every frame of a run-up. The docstring and a test show that a fixed time window long enough for the resolution the standard asks for at low frequency spreads a fast-sweeping order over the band and biases its TNR low, by about 19 dB in the test case. Where the text of the 3rd edition is inconsistent, the module notes how it is read: the secondary tone is added in Formulae (A.7) and (A.8), the tone spacing is \|f_s − f_p\|, 500 Hz takes arithmetic centring, the criteria cover 89.1 Hz to 11 200 Hz, and the misprints of Formulae (21) and (23) are resolved with their Annex B counterparts. ## Notes - The order analysis follows the published literature cited in each docstring and is tested on synthetic signals with known speed, angle and order amplitudes; the README gives the tolerances, for example 0.2 dB for order amplitudes on stationary segments. - Versions 0.6.0 (the wrappers of `rota.bridges`) and 0.7.0 (the figures of `rota.plot`) were released on 2026-10-28, both tagged and on PyPI. - The README places the psychoacoustic metrics themselves (loudness, sharpness, roughness, tonality) outside the project's scope. The wrappers of `rota.bridges` call the public functions of the toolboxes at run time, never copy their code, and state each toolbox's licence and how its authors ask to be cited. - The repository was renamed from ROTA to rota-order in October 2026; the old address redirects. ## Before you rely on it - Very new (first released in October 2026) and not yet seen to be widely used in the community; no independent verification has been published. - The README calls the current version pre-alpha and says that functions and signatures may still change before 1.0. - The SQAT wrappers need a licensed local MATLAB with the Signal Processing Toolbox and a checkout of SQAT v2.0. ## Sources - https://github.com/ZhenxianLi/rota-order/blob/main/README.md - https://github.com/ZhenxianLi/rota-order/blob/main/LICENSE - https://github.com/ZhenxianLi/rota-order/blob/main/CITATION.cff - https://github.com/ZhenxianLi/rota-order/blob/main/CHANGELOG.md - https://github.com/ZhenxianLi/rota-order/blob/main/src/rota/_prominence.py - https://github.com/ZhenxianLi/rota-order/blob/main/src/rota/bridges/__init__.py - https://github.com/ZhenxianLi/rota-order/blob/main/src/rota/bridges/_common.py - https://github.com/ZhenxianLi/rota-order/blob/main/src/rota/bridges/mosqito.py - https://github.com/ZhenxianLi/rota-order/blob/main/src/rota/bridges/sottek_hearing_model.py - https://github.com/ZhenxianLi/rota-order/blob/main/src/rota/bridges/sqat.py - https://github.com/ZhenxianLi/rota-order/blob/main/tests/test_prominence.py - https://github.com/ZhenxianLi/rota-order/blob/main/tests/test_bridge_mosqito.py - https://github.com/ZhenxianLi/rota-order/blob/main/tests/test_bridge_shm.py - https://github.com/ZhenxianLi/rota-order/blob/main/tests/test_bridges.py - https://github.com/ZhenxianLi/rota-order/blob/main/tests/test_bridges_sqat.py - https://github.com/ZhenxianLi/rota-order/blob/main/pyproject.toml - https://github.com/ZhenxianLi/rota-order/blob/main/.github/workflows/tests.yml - https://pypi.org/project/rota-order/ --- # SoundPalette > 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/soundpalette.html **Newly released project.** Its psychoacoustic metrics were added in July 2026 (v0.5.0). Not yet seen to be widely used in the community. Check its validation before relying on it. C++ tool for game audio that analyses a folder of sound effects and draws each file as a glyph in a palette, built as a static library, a command-line tool (including a lint mode for CI) and a desktop app. Its psychoacoustic block reports ISO 532-1 loudness (N5), DIN 45692 sharpness, Daniel & Weber roughness and an experimental fluctuation strength. - **Repository:** https://github.com/onyx-prismantium/soundpalette - **Language:** C++ - **Kind:** Application (A program to run, with a graphical or command-line interface; no programming needed.) - **Group:** newly released (First released less than about a year ago, and not yet seen to be widely used in the community.) - **Licence:** FSL-1.1-Apache-2.0 — Functional Source License 1.1, a source-available licence that is not OSI-approved: it allows any use except a competing commercial product or service, and each release becomes Apache-2.0 two years after publication. The README states that releases up to and including v0.7.0 were published under Apache-2.0. - **Latest release:** v0.8.0 (2026-09) - **Last commit:** 2026-09-27 (active) - **GitHub stars:** 0 - **Maintainers:** onyx-prismantium - **AI assistance:** disclosed — The repository contains a `CLAUDE.md` file, and 49 of its 54 commits carry "Co-Authored-By: Claude" trailers. - **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-06 ## 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) (time-varying, reported as N5; monaural; since v0.5.0) | `sp::compute_psycho` | available | compared with MoSQITo | No MoSQITo code is ported. | | [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html) | [DIN 45692:2009](https://www.dinmedia.de/en/standard/din-45692/117635111) (from time-averaged specific loudness; since v0.5.0) | `sp::compute_psycho` | available | compared with MoSQITo | — | | [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) (since v0.5.0) | `sp::compute_psycho` | available | compared with MoSQITo | — | ## 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: compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** - Compared with MoSQITo 1.2.1 on calibrated test signals, used as a development-time reference (`NOTES.md`, `tools/psycho_oracle`). - [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html), DIN 45692:2009: compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** - Compared with MoSQITo 1.2.1 (tolerance ±5 %). - [Roughness (Daniel & Weber)](https://zhenxianli.github.io/LISQM/metrics/roughness-daniel-weber.html), Daniel & Weber (1997): compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** - Compared with MoSQITo 1.2.1 with a wider tolerance (±15 %); the README notes that published Daniel & Weber implementations differ by about 10–20 %. ## Notes - The psychoacoustic metrics were added in v0.5.0 (July 2026), with "mapping v2". - Calibration convention: a signal measuring −23 LUFS is assumed to play at `ref_spl` dB SPL (default 75, allowed range 60–85). The value is stored in every manifest and profile, and comparisons between different `ref_spl` values are refused. - Also computes fluctuation strength in vacil, flagged as experimental; the README names no model for it. ## Before you rely on it - The Functional Source License is source-available, not an OSI-approved open-source licence; check its competing-use restriction before reusing the code. - `NOTES.md` documents simplifications: the third-octave bands come from an STFT rather than the standard's filter bank, the temporal processing was tuned to MoSQITo's N5 values, and roughness uses a fixed 70 Hz weighting and 28 instead of 47 channels. Tolerances (±5 % for stationary loudness and sharpness, ±10 % for N5, ±15 % for roughness) are the acceptance criterion. - Loudness in sones depends on the declared playback level (`ref_spl`), not on a measured calibration. ## Sources - https://github.com/onyx-prismantium/soundpalette - https://github.com/onyx-prismantium/soundpalette/blob/main/README.md - https://github.com/onyx-prismantium/soundpalette/blob/main/LICENSE.md - https://github.com/onyx-prismantium/soundpalette/blob/main/NOTES.md - https://github.com/onyx-prismantium/soundpalette/blob/main/core/include/soundpalette/psycho.h --- # torch_amt > 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/torch-amt.html **Newly released project.** First released in February 2026. Not yet seen to be widely used in the community. Check its validation before relying on it. PyTorch implementations of models from the MATLAB Auditory Modeling Toolbox (AMT), differentiable and able to run on GPU. For loudness it has the time-varying models of Glasberg & Moore (2002) and Moore et al. (2016, binaural). - **Repository:** https://github.com/StefanoGiacomelli/torch_amt - **Documentation:** https://torch-amt.readthedocs.io/ - **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:** newly released (First released less than about a year ago, and not yet seen to be widely used in the community.) - **Licence:** GPL-3.0-or-later - **Package:** PyPI `torch-amt` (https://pypi.org/project/torch-amt/) - **Install:** `pip install torch-amt` - **Latest release:** 0.2.0 (2026-02) - **Last commit:** 2026-03-19 (active) - **GitHub stars:** 3 - **Maintainers:** Stefano Giacomelli - **AI assistance:** not stated - **How to cite:** The repository has a [CITATION.cff](https://github.com/StefanoGiacomelli/torch_amt/blob/main/CITATION.cff) file. Name the version or commit you used. - **Entry checked:** 2026-10-06 ## What it implements | Metric | Edition | Functions | Status | Validation (as stated) | Notes | |---|---|---|---|---|---| | [Time-varying loudness (Moore–Glasberg–Schlittenlacher)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.html) | [Moore et al. (2016)](https://doi.org/10.1177/2331216516682698) (binaural) | `torch_amt.models.Moore2016` | available | compared with AMT (its source) | Described as a "1:1 port" of AMT `moore2016`, with outer and middle ear per ANSI S3.4-2007 (docstring). | | [Time-varying loudness (Moore–Glasberg–Schlittenlacher)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.html) | [Glasberg & Moore (2002)](https://aes2.org/publications/elibrary-page/?id=11081) (short-term and long-term loudness) | `torch_amt.models.Glasberg2002` | available | compared with AMT (its source) | Ported from AMT `glasberg2002`. | ## 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. - [Time-varying loudness (Moore–Glasberg–Schlittenlacher)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.html), Moore et al. (2016); [Time-varying loudness (Moore–Glasberg–Schlittenlacher)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.html), Glasberg & Moore (2002): compared with [AMT](https://zhenxianli.github.io/LISQM/projects/amt.html) (its source) - Ported or adapted from [AMT](https://zhenxianli.github.io/LISQM/projects/amt.html). It was compared with the code it was ported from, which checks the port only. - Agreement with AMT is claimed in the documentation, without stored reference data. ## Notes - The README asks users to cite both the software and the AMT paper (Majdak, Hollomey & Baumgartner, 2022). - The other models in the package (Dau1997, King2019, Osses2021, Paulick2024) are not psychoacoustic metrics in the sense of this list. There is no port of AMT's `moore1997`, `chen2011` or `bramslow2004`, and no roughness, sharpness or fluctuation strength. ## Before you rely on it - The documentation claims "Matching MATLAB AMT v1.6.0 implementations", but the tests contain no stored AMT or MATLAB reference outputs. ## Sources - https://github.com/StefanoGiacomelli/torch_amt - https://github.com/StefanoGiacomelli/torch_amt/blob/main/README.md - https://github.com/StefanoGiacomelli/torch_amt/blob/main/docs/source/index.rst - https://pypi.org/project/torch-amt/ --- # ZwickerLoudness.jl > 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/zwickerloudness-jl.html **Newly released project.** First registered in February 2026. Not yet seen to be widely used in the community. Check its validation before relying on it. Julia package that computes ISO 532-1:2017 Zwicker loudness from one-third-octave band levels: the stationary method (clause 5) from 28 band levels and, since v0.3.0, the time-varying method (clause 6) with N5 and N10 from a band-level time series. It does not take audio; ZwickerLoudnessAudio.jl is its front end for waveforms. - **Repository:** https://github.com/slink/ZwickerLoudness.jl - **Language:** Julia - **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:** newly released (First released less than about a year ago, and not yet seen to be widely used in the community.) - **Licence:** MIT - **Package:** Julia General `ZwickerLoudness` (https://juliahub.com/ui/Packages/General/ZwickerLoudness) - **Install:** `using Pkg; Pkg.add("ZwickerLoudness")` - **Latest release:** v0.3.0 (2026-09) - **Last commit:** 2026-09-02 (active) - **GitHub stars:** 4 - **Maintainers:** slink - **AI assistance:** not stated - **How to cite:** The README links a [Zenodo DOI](https://zenodo.org/badge/latestdoi/1152458596) for the latest version. Name the version or commit you used. - **Entry checked:** 2026-10-08 ## 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) (stationary, from 28 one-third-octave band levels; since 0.2.0) | `zwicker_loudness` | available | standard or paper data (one Annex B signal); also compared with MoSQITo | — | | [Zwicker loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-zwicker.html) | [ISO 532-1:2017](https://www.iso.org/standard/63077.html) (time-varying, from band levels at 2000 Hz; N5 and N10; since 0.3.0) | `zwicker_loudness_time_varying` | available | standard or paper data (one Annex B signal); also compared with MoSQITo (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 (stationary, from 28 one-third-octave band levels): standard or paper data (one Annex B signal); also compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** - Checked against ISO 532-1 Annex B signal 1, the only 28-band reference in Annex B (83.296 sone, tolerance ±5 %). - Checked per Bark bin against MoSQITo output (maximum difference below 0.001 sone/Bark). - [Zwicker loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-zwicker.html), ISO 532-1:2017 (time-varying, from band levels at 2000 Hz; N5 and N10): standard or paper data (one Annex B signal); also compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (its source) - Ported or adapted from **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**. It was compared with the code it was ported from, which checks the port only. - Stages are tested against MoSQITo `loudness_zwtv` intermediates (agreement about 1e-9 to 1e-15). - An Annex B.4 "Test signal 6" test regenerates band levels from a local MoSQITo checkout and is skipped when none is present; CI clones MoSQITo for it. - The ISO WAV files are not included. ## Notes - Version 0.1.0 (February 2026) was described as "ISO 532B" and was never registered; the code was rewritten for ISO 532-1:2017 in 0.2.0, the first version in the Julia General registry (2026-02-11). - The time-varying kernel takes a 28 × n matrix of band levels at the standard's 2000 Hz block rate. Its transcription reference is MoSQITo's `loudness_zwtv` at commit `d990c33f94f1`. - Free-field and diffuse-field listening conditions are supported. ## Before you rely on it - N5 and N10 use Hyndman–Fan type 7 quantiles; the README notes that MATLAB's `prctile` (type 5), used by SQAT, can differ by a few percent on the same data. ## Sources - https://github.com/slink/ZwickerLoudness.jl - https://github.com/slink/ZwickerLoudness.jl/blob/main/README.md - https://github.com/slink/ZwickerLoudness.jl/blob/main/test/fixtures/NOTICE.md - https://github.com/slink/ZwickerLoudness.jl/releases - https://github.com/JuliaRegistries/General/tree/master/Z/ZwickerLoudness - https://github.com/slink/ZwickerLoudness.jl/blob/main/src/method2.jl --- # 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 --- # LoudnessModel > 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/loudnessmodel.html Python translation of the Cambridge MATLAB code for the TVL2018 loudness model: Moore et al. (2016) with the revised time constants of Moore et al. (2018). Computes instantaneous, short-term and long-term loudness, in a NumPy version and a JAX version. - **Repository:** https://github.com/MalcolmSlaney/LoudnessModel - **Language:** Python - **Kind:** Research code (Code published with a study, a thesis or a student project, to run or adapt; not packaged as a library.) - **Group:** developing (Public for more than a year, but without a publication or documented use by others: research, teaching or personal code.) - **Licence:** BSD-2-Clause — The README also says "The source code is provided free for any research purposes"; the readme of the Cambridge MATLAB code tv2018.m (see iso532-3) uses similar wording and asks commercial users to contact Brian C. J. Moore. - **Latest release:** no release - **Last commit:** 2025-03-20 (inactive since 2025-03) - **GitHub stars:** 19 - **Maintainers:** Jeremy JX Hsiao, Malcolm Slaney - **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-06 ## What it implements | Metric | Edition | Functions | Status | Validation (as stated) | Notes | |---|---|---|---|---|---| | [Time-varying loudness (Moore–Glasberg–Schlittenlacher)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.html) | [Moore et al. (2018)](https://doi.org/10.1121/1.5027246) (instantaneous, short-term and long-term loudness; binaural) | `tvl2018.compute_loudness`, `tvl2018_jax.compute_loudness` | available | own tests only | — | ## 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. - [Time-varying loudness (Moore–Glasberg–Schlittenlacher)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.html), Moore et al. (2018): own tests only - Ported or adapted from [iso532-3 (tv2018.m)](https://zhenxianli.github.io/LISQM/projects/js2251-iso532-3.html). - Tests run in GitHub Actions compare overall loudness, the first five short-term and long-term values and selected intermediate stages for one input (1 kHz tone, 100 ms, 32 kHz) with hard-coded expected values. - The README calls this "a known accurate output", but neither it nor the tests say where the values come from. ## Notes - The README credits Brian C. J. Moore, Brian R. Glasberg and Josef Schlittenlacher for the MATLAB model and links the original MATLAB code (the first download on https://www.psychol.cam.ac.uk/hearing#programs). That page now needs a University of Cambridge login; an [archived copy](https://web.archive.org/web/20251123130736/https://www.psychol.cam.ac.uk/hearing) from November 2025 still links the code, an earlier version of the code in [iso532-3](https://github.com/js2251/iso532-3). - The Python function names largely mirror the MATLAB files of tv2018 (see [iso532-3](https://github.com/js2251/iso532-3)), e.g. `agc_next_frame` for `AGCNextFrame.m`. ISO 532-3 is not mentioned in the repository. - Outer- and middle-ear transfer functions for free-field, diffuse-field and eardrum presentation are included for 32 kHz. - There is no packaging metadata (no pyproject.toml or setup.py) and no PyPI package; the README installs from a clone with requirements.txt. A Colab notebook with demos is linked. ## Before you rely on it - The README says the JAX version "does not compile as there are several portions of the implementation that are not pure". ## Sources - https://github.com/MalcolmSlaney/LoudnessModel - https://github.com/MalcolmSlaney/LoudnessModel/blob/main/README.md - https://github.com/MalcolmSlaney/LoudnessModel/blob/main/tvl2018_test.py - https://github.com/MalcolmSlaney/LoudnessModel/blob/main/LICENSE --- # deeuu/loudness > 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/deeuu-loudness.html **Legacy project.** Not maintained. Its last commit was in August 2019, more than three years ago. Kept here for reference. Its code may follow an older edition and may not run with current software. C++ library with SWIG Python bindings for building loudness models from cascaded processing modules. Includes Moore–Glasberg models for stationary sounds (ANSI S3.4-2007, Chen et al. 2011) and time-varying sounds (Glasberg & Moore 2002, Chen & Hu 2012), and stationary Zwicker loudness after DIN 45631:1991. - **Repository:** https://github.com/deeuu/loudness - **Language:** C++, 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:** legacy (Archived, or no commit for three years or more. Kept for reference. The code may follow an older edition and may not run with current software.) - **Licence:** GPL-3.0-or-later - **Latest release:** no release - **Last commit:** 2019-08-08 (inactive since 2019-08) - **GitHub stars:** 40 - **Maintainers:** Dominic Ward - **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-06 ## What it implements | Metric | Edition | Functions | Status | Validation (as stated) | Notes | |---|---|---|---|---|---| | [Zwicker loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-zwicker.html) | [DIN 45631:1991](https://www.dinmedia.de/en/standard/din-45631/1666531) (stationary only) | `StationaryLoudnessDIN456311991` | available | compared with GENESIS ACOUSTICS code (Python port) | Uses 28 third-octave filters with third-order Butterworth responses after ANSI S1.11:1986; there is no time-varying (DIN 45631/A1) model. | | [Moore–Glasberg loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg.html) | [Chen et al. (2011)](https://doi.org/10.1016/j.heares.2011.08.001) | `StationaryLoudnessCHGM2011` | available | own tests only | — | | [Moore–Glasberg loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg.html) | [ANSI/ASA S3.4-2007](https://webstore.ansi.org/standards/asa/ANSIASAS32007R2020) (with the binaural inhibition of Moore & Glasberg (2007) for two ears) | `StationaryLoudnessANSIS342007` | available | own tests only | — | | [Time-varying loudness (Moore–Glasberg–Schlittenlacher)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.html) | [Glasberg & Moore (2002)](https://aes2.org/publications/elibrary-page/?id=11081) | `DynamicLoudnessGM2002` | available | own tests only | Per the header, excitation patterns follow ANSI S3.4-2007, and parameter sets use the modified long-term time constants of Moore et al. (2003) and the ANSI S3.4-2007 equation for specific loudness at high levels. | ## 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), DIN 45631:1991: compared with GENESIS ACOUSTICS code (Python port) - Ported or adapted from BASIC program of DIN 45631 (Zwicker et al., 1991). - Tested against "a quick and dirty Python port of the Matlab code private by GENESIS ACOUSTICS". - [Moore–Glasberg loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg.html), Chen et al. (2011); [Time-varying loudness (Moore–Glasberg–Schlittenlacher)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.html), Glasberg & Moore (2002): own tests only - [Moore–Glasberg loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg.html), ANSI/ASA S3.4-2007: own tests only - Unit tests cover each module and model. - A validation script writes computed and expected loudness of pure tones to CSV; the expected values are labelled "Table 7" and "Example 2" without naming their source. ## Notes - Also includes the dynamic loudness model of Chen & Hu (2012) (`DynamicLoudnessCH2012`) and partial-loudness stages after Moore, Glasberg & Baer (1997) and Chen et al. (2011) (`SpecificPartialLoudnessMGB1997`, `SpecificPartialLoudnessCHGM2011`); neither has an entry in this list. - The interface is modelled on AIM-C. Building needs libsndfile, FFTW and zlib; the Python bindings need SWIG 3. - The last commit touching the source code, bindings or Python package was on 2017-06-01; the last commit (2019-08-08) updated the README. - `swig/setup.py` names the Python package `loudness` 0.0.1, but it was never published on PyPI. ## Before you rely on it - The README says "This project is still in heavy development so is not stable". - The PyPI package named `loudness` is an unrelated LUFS (ITU-R BS.1770) project (iver56/loudness); this library has to be built from source. ## Sources - https://github.com/deeuu/loudness - https://github.com/deeuu/loudness/blob/master/README.md - https://github.com/deeuu/loudness/tree/master/src/models - https://github.com/deeuu/loudness/tree/master/python/tests - https://pypi.org/project/loudness/ --- # fluctuation-strength-TUe > 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/fluctuation-strength-tue.html **Legacy project.** Not maintained. Its last commit was in January 2020, more than three years ago. Kept here for reference. Its code may follow an older edition and may not run with current software. MATLAB code of the fluctuation strength model of Osses, García & Kohlrausch (2016) (`FluctuationStrength_TUe.m`), with the stimuli of the paper and a demo that reproduces its figures. - **Repository:** https://github.com/aosses-tue/fluctuation-strength-TUe - **Language:** MATLAB - **Kind:** Research code (Code published with a study, a thesis or a student project, to run or adapt; not packaged as a library.) - **Group:** legacy (Archived, or no commit for three years or more. Kept for reference. The code may follow an older edition and may not run with current software.) - **Licence:** none - **Latest release:** v1.0 (2019-12) - **Last commit:** 2020-01-02 (inactive since 2020-01) - **GitHub stars:** 1 - **Maintainers:** Alejandro Osses - **AI assistance:** not stated - **Paper:** Osses, A., García, R., & Kohlrausch, A. (2016). Modelling the sensation of fluctuation strength. *Proceedings of Meetings on Acoustics*, 28, 050005. https://doi.org/10.1121/2.0000410 - **How to cite:** Cite the paper above. Name the version or commit you used. - **Entry checked:** 2026-10-06 ## What it implements | Metric | Edition | Functions | Status | Validation (as stated) | Notes | |---|---|---|---|---|---| | [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) (since 1.0) | `FluctuationStrength_TUe` | available | standard or paper data | — | ## 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. - [Fluctuation strength (Osses et al.)](https://zhenxianli.github.io/LISQM/metrics/fluctuation-strength-osses.html), Osses et al. (2016): standard or paper data - `demos/demo_osses2016a.m` reproduces the figures of the paper with the included stimuli (AM and FM tones, AM noise and excerpts of real sounds). ## Notes - The header says the algorithm was "adapted from the Roughness model" and programmed by Alejandro Osses and Rodrigo García at TU/e, 2014–2016. - The model is also documented in Osses Vecchi (2018), PhD thesis, TU Eindhoven (Chapter 2 and Appendix B), linked from the README. - Version 1.0 is a git tag of 2019-12-31; the code was optimised after the tag, on 2020-01-02. ## Before you rely on it - No licence file, so reuse is not permitted by default. ## Sources - https://github.com/aosses-tue/fluctuation-strength-TUe - https://github.com/aosses-tue/fluctuation-strength-TUe/blob/master/README.md - https://github.com/aosses-tue/fluctuation-strength-TUe/blob/master/FluctuationStrength_TUe.m - https://doi.org/10.1121/2.0000410 - https://research.tue.nl/files/103868563/20180919_Osses_Vecchi.pdf --- # HAW loudness tool > 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/haw-specific-loudness.html **Legacy project.** Not maintained. Its last commit was in December 2022, more than three years ago. Kept here for reference. Its code may follow an older edition and may not run with current software. MATLAB tool with a graphical interface, from HAW Hamburg, that shows the specific loudness of time-varying sounds: a Moore–Glasberg front end on ERB bands with temporal processing after Glasberg & Moore (2002), Chalupper & Fastl (2002) or Baumgarte (2000). Written in 2007 for a diploma thesis and published on Zenodo in 2022. - **Full name:** Specific loudness of time-varying sounds (MATLAB tool) - **Repository:** https://zenodo.org/records/7361480 - **Homepage:** https://reposit.haw-hamburg.de/handle/20.500.12738/14892 - **Language:** MATLAB - **Kind:** Application (A program to run, with a graphical or command-line interface; no programming needed.) - **Group:** legacy (Archived, or no commit for three years or more. Kept for reference. The code may follow an older edition and may not run with current software.) - **Licence:** CC-BY-4.0 — Licence of the HAW Hamburg repository record; the archive itself has no licence file. - **Latest release:** 1 (2022-12) - **Last commit:** 2022-12-16 (inactive since 2022-12) - **Maintainers:** Christian Sabrautzky, Robert Mores - **AI assistance:** not stated - **Paper:** Sabrautzky, C. (2007). *Erweiterung eines Lautheitsmodells von Moore und Glasberg zur Berechnung der spezifischen Lautheit dynamischer Audiosignale* [Diploma thesis, HAW Hamburg]. - **How to cite:** Cite the paper above. Software DOI: [10.5281/zenodo.7361480](https://doi.org/10.5281/zenodo.7361480). Name the version or commit you used. - **Entry checked:** 2026-10-07 ## What it implements | Metric | Edition | Functions | Status | Validation (as stated) | Notes | |---|---|---|---|---|---| | [Time-varying loudness (Moore–Glasberg–Schlittenlacher)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.html) | [Glasberg & Moore (2002)](https://aes2.org/publications/elibrary-page/?id=11081) (specific loudness over time on ERB bands; three temporal models) | `loud_gui`, `matlab_loud` | available | reference code: LOUDAES and TVL (Glasberg & Moore's programs) | — | ## 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. - [Time-varying loudness (Moore–Glasberg–Schlittenlacher)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.html), Glasberg & Moore (2002): reference code: LOUDAES and TVL (Glasberg & Moore's programs) - The thesis compares the total loudness of pure tones (30–100 dB) with LOUDAES, Glasberg & Moore's program for stationary sounds: mostly within 5 %, with larger deviations at low levels near 50 Hz and above 5 kHz (−9.3 % for 5 kHz at 30 dB). - For two equal-level tones at 1 and 2 kHz, the deviation from LOUDAES ranges from −4.4 % to +3.8 % with the Hann-window FFT and reaches +6.7 % with the Fourier-time transform. - For the stationary part of signals the thesis reports good agreement with TVL, Glasberg & Moore's program for time-varying sounds, without figures. ## Before you compare numbers Implementations of the same metric can give different numbers without either being wrong. Check these choices first. - Input must be sampled at 32 kHz; the reference level is entered as the sound pressure level of a full-scale sine. ## Notes - Code by Christian Sabrautzky (2007, revision 0.7), with changes by Robert Mores (2013) and a playback toolbar by Nico Schäfer. The Zenodo record (2022-12-16) includes an English overview of the models and the German thesis. - Offers free-field and diffuse-field outer-ear filters and three spectral analyses: FFT with a Blackman–Harris or Hann window, and a Fourier-time transform. ## Before you rely on it - Not an implementation of ANSI S3.4-2007 or ISO 532-2/-3. It follows Glasberg & Moore (2002) with the constants A, α and E_THRQ read from published graphs and interpolated, and its Chalupper–Fastl and Baumgarte options apply those models' temporal processing to Moore–Glasberg specific loudness. ## Sources - https://zenodo.org/records/7361480 - https://reposit.haw-hamburg.de/handle/20.500.12738/14892 --- # IoSR Matlab Toolbox > 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/iosr-matlab-toolbox.html **Legacy project.** Not maintained. Its last commit was in August 2017, more than three years ago. Kept here for reference. Its code may follow an older edition and may not run with current software. General-purpose MATLAB toolbox from the Institute of Sound Recording (University of Surrey) for auditory modelling, signal processing, source separation, statistics and plotting. For this list it provides ISO 226:2003 equal-loudness contours; it has no loudness, sharpness or roughness models. - **Repository:** https://github.com/IoSR-Surrey/MatlabToolbox - **Language:** MATLAB - **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:** legacy (Archived, or no commit for three years or more. Kept for reference. The code may follow an older edition and may not run with current software.) - **Licence:** MIT - **Latest release:** v2.8 (2017-06) - **Last commit:** 2017-08-18 (inactive since 2017-08) - **GitHub stars:** 133 - **Maintainers:** Christopher Hummersone - **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-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) | `iosr.auditory.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 - `iosr.auditory.loudWeight` returns loudness-weighting coefficients derived from the 65-phon ISO 226:2003 contour. - The two functions are also published on MATLAB File Exchange, as submissions 50348 ("ISO 226:2003 Normal equal-loudness-level contours") and 50349 ("Loudness weighting coefficients"). ## Before you rely on it - ISO 226:2003 was withdrawn in 2023 and replaced by ISO 226:2023; the function follows the 2003 edition. - No commits since August 2017. ## Sources - https://github.com/IoSR-Surrey/MatlabToolbox - https://github.com/IoSR-Surrey/MatlabToolbox/blob/master/README.md - https://github.com/IoSR-Surrey/MatlabToolbox/blob/master/+iosr/+auditory/iso226.m - https://github.com/IoSR-Surrey/MatlabToolbox/blob/master/+iosr/+auditory/loudWeight.m --- # MoSQITo-FDP > 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/mosqito-fdp.html **Legacy project.** Archived by its authors; its last commit was in July 2021. Kept here for reference. Its code may follow an older edition and may not run with current software. Archived Python snapshot of a MoSQITo fork made for a final-degree project. It adds the Sottek Hearing Model with specific and total loudness (ECMA-418-2, 1st edition) as a step towards hearing-model tonality, and contains tone-to-noise ratio and prominence ratio after ECMA-74 Annex D. - **Repository:** https://github.com/djcaminero/MoSQITo-FDP - **Language:** Python - **Kind:** Research code (Code published with a study, a thesis or a student project, to run or adapt; not packaged as a library.) - **Group:** legacy (Archived, or no commit for three years or more. Kept for reference. The code may follow an older edition and may not run with current software.) - **Licence:** Apache-2.0 - **Latest release:** no release - **Last commit:** 2021-07-05 (archived) - **GitHub stars:** 2 - **Maintainers:** Daniel Jiménez-Caminero Costa - **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-08 ## What it implements | Metric | Edition | Functions | Status | Validation (as stated) | Notes | |---|---|---|---|---|---| | [Sottek Hearing Model loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-ecma-418-2.html) | [ECMA-418-2:2020 (1st ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_1st_edition_december_2020.pdf) (hearing model with specific and total loudness) | `comp_loudness` | available | standard or paper data | Module `mosqito.functions.hearing_model`. Its author committed the same hearing model to MoSQITo on 2021-05-30, two weeks before this snapshot. | | [Tone-to-noise ratio and prominence ratio](https://zhenxianli.github.io/LISQM/metrics/tone-to-noise-prominence-ratio.html) | [ECMA-74:2019 (17th ed.)](https://ecma-international.org/publications-and-standards/standards/ecma-74/) (Annex D) | `comp_tnr`, `comp_pr` | available | own tests only | — | ## 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. - [Sottek Hearing Model loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-ecma-418-2.html), ECMA-418-2:2020 (1st ed.): standard or paper data - Ported or adapted from **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (the author's own code). - Validation scripts compare the ear filter and model output with figures and values from ECMA-418-2 and ECMA-74 Annex F. - [Tone-to-noise ratio and prominence ratio](https://zhenxianli.github.io/LISQM/metrics/tone-to-noise-prominence-ratio.html), ECMA-74:2019 (17th ed.): own tests only - Ported or adapted from **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**. - The README lists TNR/PR as available but not validated; the tests use synthetic tones in white noise. ## Notes - Commits run from 2021-06-13 to 2021-07-05. The package inside is still named `mosqito`, and later work went into MoSQITo itself. - The hearing-model code cites both ECMA-418-2 (1st edition, 2020) and ECMA-74 Annex F (17th edition, 2019). - Also contains the Zwicker loudness, DIN 45692 sharpness and Daniel & Weber roughness of the MoSQITo version it was forked from. ## Before you rely on it - Archived snapshot without releases or maintenance. - The README marks hearing-model tonality (ECMA-74:2019 Annex G) as under development; the repository contains the hearing-model stages, but no separate tonality function was found. ## Sources - https://github.com/djcaminero/MoSQITo-FDP - https://github.com/djcaminero/MoSQITo-FDP/blob/master/readme.md - https://github.com/djcaminero/MoSQITo-FDP/tree/master/mosqito/functions/hearing_model - https://github.com/djcaminero/MoSQITo-FDP/tree/master/mosqito/validations/hearing_model - https://github.com/Eomys/MoSQITo/commit/04dab16b64041c820c08177aa74039fb3fc3ed20 --- # PsychoacousticParametersMeasurer > 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/psychoacoustic-parameters-measurer.html **Legacy project.** Not maintained. Its last commit was in June 2021, more than three years ago. Kept here for reference. Its code may follow an older edition and may not run with current software. Python scripts, commented in Spanish, that translate psychoacoustic parameters described in Zwicker and Fastl's book: Zwicker loudness (stationary and time-varying, from third-octave levels), sharpness, roughness, fluctuation strength and psychoacoustic annoyance. - **Repository:** https://github.com/AndreaCastiella/PsychoacousticParametersMeasurer - **Language:** Python - **Kind:** Research code (Code published with a study, a thesis or a student project, to run or adapt; not packaged as a library.) - **Group:** legacy (Archived, or no commit for three years or more. Kept for reference. The code may follow an older edition and may not run with current software.) - **Licence:** none - **Latest release:** no release - **Last commit:** 2021-06-06 (inactive since 2021-06) - **GitHub stars:** 13 - **Maintainers:** Andrea Castiella Aguirrezabala - **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-06 ## 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) (stationary and time-varying, from third-octave levels) | `loudness_ISO532`, `loudness_ISO532_time` | available | not stated | The file header says "Loudness ISO 532-1:2014" and the filter coefficients are labelled "ISO 532-1:2014"; the published edition is ISO 532-1:2017. | | [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html) | [DIN 45692:2009](https://www.dinmedia.de/en/standard/din-45692/117635111) | `calc_sharpness` | available | not stated | The file header says "Sharpness DIN 45692"; the function also returns the von Bismarck and Aures variants. | | [Fluctuation strength (Osses et al.)](https://zhenxianli.github.io/LISQM/metrics/fluctuation-strength-osses.html) | [Fastl & Zwicker (2007)](https://doi.org/10.1007/978-3-540-68888-4) (Zwicker & Fastl formula) | `acousticFluctuation`, `fmoddetection` | available | not stated | The header cites Zwicker & Fastl, "Psychoacoustics: Facts and Models", without naming an edition. | | [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` | available | not stated | The header cites Zwicker & Fastl, "Psychoacoustics: Facts and Models", without naming an edition. | ## 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 - There is no README. The GitHub description calls the project "the translation to python of the most important parameters in the field of Psychoacoustics based on the book of Zwicker and Fastl". - Roughness (`acousticRoughness`) follows the formula in Zwicker & Fastl's book, which is not one of the roughness metrics in this list. - Also contains A-weighting, voice-activity detection and the scripts Main.py and Main_WAV.py for microphone or WAV input. ## Before you rely on it - No licence file, so reuse is not permitted by default. - No documentation and no stated validation. ## Sources - https://github.com/AndreaCastiella/PsychoacousticParametersMeasurer - https://github.com/AndreaCastiella/PsychoacousticParametersMeasurer/blob/main/loudness_ISO532.py - https://github.com/AndreaCastiella/PsychoacousticParametersMeasurer/blob/main/Sharpness.py - https://github.com/AndreaCastiella/PsychoacousticParametersMeasurer/blob/main/FluctuationStrength.py - https://github.com/AndreaCastiella/PsychoacousticParametersMeasurer/blob/main/PsychoacousticAnnoyance.py --- # PsySound3 > 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/psysound3.html **Legacy project.** Not maintained. Its last commit was in March 2015, more than three years ago. Kept here for reference. Its code may follow an older edition and may not run with current software. MATLAB program with a graphical interface for analysing sound recordings. Its analysers include the Chalupper–Fastl dynamic loudness model, Moore–Glasberg–Baer loudness and Daniel & Weber roughness. - **Repository:** https://github.com/densilcabrera/psysound3 - **Language:** MATLAB - **Kind:** Application (A program to run, with a graphical or command-line interface; no programming needed.) - **Group:** legacy (Archived, or no commit for three years or more. Kept for reference. The code may follow an older edition and may not run with current software.) - **Licence:** none — The repository has no licence file, only a no-warranty disclaimer (README-NO_WARRANTY). The licence of the original Google Code project was not checked. - **Latest release:** no release - **Last commit:** 2015-03-28 (inactive since 2015-03) - **GitHub stars:** 17 - **Maintainers:** Densil Cabrera, Samuel Ferguson - **AI assistance:** not stated - **Paper:** PsySound3: a program for the analysis of sound recordings (2008). Acoustics'08 abstract, *The Journal of the Acoustical Society of America*, 123(5_Supplement), 3247. https://pubs.aip.org/asa/jasa/article/123/5_Supplement/3247/712568/ - **How to cite:** Cite the paper above. Name the version or commit you used. - **Entry checked:** 2026-10-06 ## What it implements | Metric | Edition | Functions | Status | Validation (as stated) | Notes | |---|---|---|---|---|---| | [Zwicker loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-zwicker.html) | [Chalupper & Fastl (2002)](https://www.ingentaconnect.com/contentone/dav/aaua/2002/00000088/00000003/art00009) (time-varying) | `@LoudnessCF` | available | not stated | The analyser names J. Chalupper and H. Fastl as authors. | | [Moore–Glasberg loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg.html) | [Moore, Glasberg & Baer (1997)](https://aes2.org/publications/elibrary-page/?id=10272) | `@LoudnessMGB` | available | not stated | Also cites Glasberg & Moore (1990) for the auditory filters. The analyser description says it covers time-varying and binaural loudness, and it also cites Glasberg & Moore (2002) and Moore & Glasberg (2007). | | [Time-varying loudness (Moore–Glasberg–Schlittenlacher)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.html) | [Glasberg & Moore (2002)](https://aes2.org/publications/elibrary-page/?id=11081) (time-varying and binaural) | `@LoudnessMGB` | available | not stated | The same analyser as the stationary entry; its description cites Glasberg & Moore (2002). | | [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) | `@RoughnessDW` | available | not stated | Adapted for PsySound3 by Matt Flax (2006), with changes by Farhan Rizwi (2007). AARAE's `RoughnessDW.m` is a port of this analyser. | ## 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 GitHub repository is an automatic export of the Google Code project `psysound3`; its commits run from January 2009 to March 2015. It also bundles MIRtoolbox functions. - `@LoudnessMG` computes loudness with a "Moore et al. static model" adapted from PsySound2; the model version is not stated. - Search results describe PsySound3 as also covering sharpness and fluctuation strength. In this mirror, the descriptions of `@LoudnessCF` and `@LoudnessMG` list sharpness among their outputs; a fluctuation-strength analyser was not confirmed. ## Before you rely on it - `README-BUGSISSUES` lists open problems, including "Various Accuracy Bugs", "Calibration Problems" and "Revisit calibration modes". - The project states no validation, and there have been no commits since March 2015. - With no licence file, the terms for reuse and redistribution are unclear. ## Sources - https://github.com/densilcabrera/psysound3 - https://github.com/densilcabrera/psysound3/blob/master/README-BUGSISSUES - https://github.com/densilcabrera/psysound3/blob/master/README-NO_WARRANTY - https://github.com/densilcabrera/psysound3/blob/master/AudioAnalysers/@LoudnessCF/getAuthors.m - https://github.com/densilcabrera/psysound3/blob/master/AudioAnalysers/@LoudnessCF/getDescription.m - https://github.com/densilcabrera/psysound3/blob/master/AudioAnalysers/@LoudnessMG/getDescription.m - https://github.com/densilcabrera/psysound3/blob/master/AudioAnalysers/@LoudnessMGB/getDescription.m - https://github.com/densilcabrera/psysound3/blob/master/AudioAnalysers/@RoughnessDW/getDescription.m --- # python-acoustics > 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/python-acoustics.html **Legacy project.** Archived by its authors; its last commit was in August 2023. Kept here for reference. Its code may follow an older edition and may not run with current software. General Python library for acousticians, published on PyPI as `acoustics`. For this list it is relevant for its tonal audibility and tonal adjustment after ISO 1996-2:2007. Archived in February 2024 and continued as acoustic-toolbox. - **Repository:** https://github.com/python-acoustics/python-acoustics - **Documentation:** https://python-acoustics.github.io/python-acoustics/ - **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:** legacy (Archived, or no commit for three years or more. Kept for reference. The code may follow an older edition and may not run with current software.) - **Licence:** BSD-3-Clause - **Package:** PyPI `acoustics` (https://pypi.org/project/acoustics/) - **Install:** `pip install acoustics` - **Latest release:** 0.2.6 (2022-07) - **Last commit:** 2023-08-20 (archived) - **GitHub stars:** 563 - **Maintainers:** Frederik Rietdijk - **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-08 ## What it implements | Metric | Edition | Functions | Status | Validation (as stated) | Notes | |---|---|---|---|---|---| | [Tonal audibility (ISO 1996-2)](https://zhenxianli.github.io/LISQM/metrics/tonal-audibility-iso-1996-2.html) | [ISO 1996-2:2007](https://www.iso.org/standard/41860.html) (tonal audibility and tonal adjustment) | `Tonality`, `tonal_audibility`, `tonal_adjustment` | available | own tests only | Module `acoustics.standards.iso_1996_2_2007`. The `Tonality` docstring uses the title of Annex C ("Objective method for assessing the audibility of tones in noise"), though the code does not name the annex. | ## 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. - [Tonal audibility (ISO 1996-2)](https://zhenxianli.github.io/LISQM/metrics/tonal-audibility-iso-1996-2.html), ISO 1996-2:2007: own tests only - A test of the examples in the standard, using DELTA tone files, is commented out. ## Notes - The successor is [acoustic-toolbox](https://github.com/Universite-Gustave-Eiffel/acoustic-toolbox), which continues the same code. - It has no loudness, sharpness or roughness modules. ## Before you rely on it - The repository was archived on 2024-02-07 and is read-only. - A fix to the default window of the tonality code (2023-08-20) is on the default branch but not in the last PyPI release (0.2.6, July 2022). - It follows ISO 1996-2:2007, which has been withdrawn; ISO 1996-2:2017 replaced its tonal audibility method with those of Annexes J and K. ## Sources - https://github.com/python-acoustics/python-acoustics - https://github.com/python-acoustics/python-acoustics/blob/master/README.md - https://github.com/python-acoustics/python-acoustics/blob/master/acoustics/standards/iso_1996_2_2007.py - https://github.com/python-acoustics/python-acoustics/blob/master/tests/standards/test_iso_1996_2_2007.py - https://pypi.org/project/acoustics/ - https://github.com/python-acoustics/python-acoustics/blob/master/docs/conf.py --- # SUAVE > 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/suave.html **Legacy project.** Not maintained. Its last commit was in December 2022, more than three years ago. Kept here for reference. Its code may follow an older edition and may not run with current software. Python environment for the multi-fidelity conceptual design of aircraft ("An Aerospace Vehicle Environment"). Its noise tools compute perceived noise level (PNL), tone-corrected PNL (PNLT) and effective perceived noise level (EPNL) from one-third-octave spectra. - **Repository:** https://github.com/suavecode/SUAVE - **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:** legacy (Archived, or no commit for three years or more. Kept for reference. The code may follow an older edition and may not run with current software.) - **Licence:** LGPL-2.1 - **Latest release:** 2.5.2 (2022-03) - **Last commit:** 2022-12-23 (inactive since 2022-12) - **GitHub stars:** 532 - **Maintainers:** SUAVE team (Stanford Aerospace Design Lab) - **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-06 ## What it implements | Metric | Edition | Functions | Status | Validation (as stated) | Notes | |---|---|---|---|---|---| | [Perceived noise level and EPNL](https://zhenxianli.github.io/LISQM/metrics/epnl.html) | [ICAO Annex 16, Vol. I](https://store.icao.int/en/annex-16-environmental-protection-volume-i-aircraft-noise) (PNL, PNLT and EPNL; the code cites no edition) | `pnl_noise`, `noise_tone_correction`, `epnl_noise` | available | not stated | EPNL is computed from a PNLT time history. The noise tools cite neither ICAO Annex 16 nor 14 CFR Part 36, nor an edition; their docstrings give "Source: None". | ## 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 noise tools are in `SUAVE/Methods/Noise/Fidelity_One/Noise_Tools`, written by C. Ilario (2015) and modified by E. Botero (2016). The same folder has SENEL, dBA and noise-certification-limit helpers. ## Before you rely on it - Development appears to have stopped in 2022: the last release (2.5.2) is from March 2022 and the last commit from December 2022. - No validation of the noise metrics is stated. ## Sources - https://github.com/suavecode/SUAVE - https://github.com/suavecode/SUAVE/blob/develop/README.md - https://github.com/suavecode/SUAVE/tree/develop/trunk/SUAVE/Methods/Noise/Fidelity_One/Noise_Tools --- # Swift & Gee codes > 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/rapid-loudness-sharpness.html **Legacy project.** Not maintained. Its last commit was in January 2020, more than three years ago. Kept here for reference. Its code may follow an older edition and may not run with current software. MATLAB code by S. Hales Swift (Brigham Young University) on MATLAB File Exchange for fast Moore–Glasberg loudness: ANSI S3.4-2007 stationary loudness and Glasberg & Moore (2002) time-varying loudness, each with the sharpness of Swift & Gee (2017), which is computed from Moore–Glasberg specific loudness. - **Full name:** Codes for the rapid calculation of loudness and sharpness - **Repository:** https://www.mathworks.com/matlabcentral/fileexchange/73808-codes-for-the-rapid-calculation-of-loudness-and-sharpness - **Language:** MATLAB - **Kind:** Research code (Code published with a study, a thesis or a student project, to run or adapt; not packaged as a library.) - **Group:** legacy (Archived, or no commit for three years or more. Kept for reference. The code may follow an older edition and may not run with current software.) - **Licence:** BSD-3-Clause — license.txt: Copyright (c) 2019, Stephen Hales Swift. - **Package:** MATLAB File Exchange `73808` (https://www.mathworks.com/matlabcentral/fileexchange/73808-codes-for-the-rapid-calculation-of-loudness-and-sharpness) - **Latest release:** 1.0.0 (2020-01) - **Last commit:** 2020-01-24 (inactive since 2020-01) - **Maintainers:** Stephen Hales Swift - **AI assistance:** not stated - **Paper:** Swift, S. H., & Gee, K. L. (2019). Techniques for the rapid calculation of the excitation pattern in the time varying extensions to ANSI S3.4-2007. *Proceedings of Meetings on Acoustics*, 36, 040002. - **How to cite:** The File Exchange page asks for the paper above for the loudness code and for Swift & Gee (2017) for the sharpness code. Name the version or commit you used. - **Entry checked:** 2026-10-07 ## What it implements | Metric | Edition | Functions | Status | Validation (as stated) | Notes | |---|---|---|---|---|---| | [Moore–Glasberg loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg.html) | [ANSI/ASA S3.4-2007](https://webstore.ansi.org/standards/asa/ANSIASAS32007R2020) | `stationaryLoudness` | available | not stated | — | | [Time-varying loudness (Moore–Glasberg–Schlittenlacher)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.html) | [Glasberg & Moore (2002)](https://aes2.org/publications/elibrary-page/?id=11081) | `Glasberg_loudness` | available | not stated | — | | [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html) | [Swift & Gee (2017)](https://doi.org/10.1121/1.5016193) (from Moore–Glasberg specific loudness, stationary and time-varying) | `stationaryLoudness`, `Glasberg_loudness` | 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. ## Before you compare numbers Implementations of the same metric can give different numbers without either being wrong. Check these choices first. - The code works at 32 kHz; other rates are resampled with the Signal Processing Toolbox's `resample`. ## Notes - Version 1.0.0 (2020-01-24) is the only update after the first upload (2019-12-31). There is no public commit history; the files can be read online on File Exchange without logging in. - The sharpness code is by the authors of the sharpness model. ## Before you rely on it - No validation is described. - Without the Signal Processing Toolbox, the File Exchange page says a file from the Cambridge Hearing Group's website is needed; that page now needs a University of Cambridge login. ## Sources - https://www.mathworks.com/matlabcentral/fileexchange/73808-codes-for-the-rapid-calculation-of-loudness-and-sharpness - https://viewer.mathworks.com/addons/73808/latest - https://doi.org/10.1121/1.5016193 --- # Zhen-Ni/epnl > 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/zhen-ni-epnl.html **Legacy project.** Not maintained. Its last commit was in July 2023, more than three years ago. Kept here for reference. Its code may follow an older edition and may not run with current software. Small Rust crate that computes perceived noisiness (noy), perceived noise level (PNL) and tone-corrected perceived noise level (PNLT) from 24 one-third-octave band levels, citing ICAO Annex 16, Volume I, Appendix 2 in its code comments. - **Repository:** https://github.com/Zhen-Ni/epnl - **Language:** Rust - **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:** legacy (Archived, or no commit for three years or more. Kept for reference. The code may follow an older edition and may not run with current software.) - **Licence:** none - **Latest release:** no release - **Last commit:** 2023-07-10 (inactive since 2023-07) - **GitHub stars:** 0 - **Maintainers:** Zhen-Ni - **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-06 ## What it implements | Metric | Edition | Functions | Status | Validation (as stated) | Notes | |---|---|---|---|---|---| | [Perceived noise level and EPNL](https://zhenxianli.github.io/LISQM/metrics/epnl.html) | [ICAO Annex 16, Vol. I](https://store.icao.int/en/annex-16-environmental-protection-volume-i-aircraft-noise) (PNL and PNLT only; no duration correction to EPNL) | `SPL`, `Noy`, `PNL`, `PNLT` | available | not stated | Code comments cite "Annex 16 - Volume I, APP 2-16 / 2-17" and number the 24 bands "consistent with ICAO ANNEX 16". The quantities are Rust types converted into each other with `From`. | ## 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 crate (version 0.1.0) has no README and is not published on crates.io; input.txt holds two example 24-band spectra. ## Before you rely on it - The GitHub description reads "Calculate Effective Perceived Noise Level (EPNL) for aircrafts", but EPNL itself is not implemented: there is no time integration or duration correction. - No licence file, so reuse is not permitted by default. ## Sources - https://github.com/Zhen-Ni/epnl - https://github.com/Zhen-Ni/epnl/blob/master/Cargo.toml - https://github.com/Zhen-Ni/epnl/tree/master/src --- # zwickerloudness > 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/zwickerloudness-sourceforge.html **Legacy project.** Not maintained. Its last commit was in June 2018, more than three years ago. Kept here for reference. Its code may follow an older edition and may not run with current software. Console program in C, for BSD, Linux and Windows, that calculates the loudness of stationary sounds with Zwicker's method (ISO 532B / DIN 45631) from one-third-octave band levels. A companion tool analyses WAV files to produce those input files. - **Full name:** Zwicker's Loudness Calculation SW + Tool (ISO 532B) - **Repository:** https://sourceforge.net/projects/zwickerloudness/ - **Language:** C - **Kind:** Application (A program to run, with a graphical or command-line interface; no programming needed.) - **Group:** legacy (Archived, or no commit for three years or more. Kept for reference. The code may follow an older edition and may not run with current software.) - **Licence:** GPL-2.0 — SourceForge lists "GNU General Public License version 2.0", but the license file in the release archive (loudness-020) has the author's own BSD-style terms, with a fourth clause: a significantly different project that reuses parts of the code must be open source as well and must reference the original code. - **Latest release:** zwickerloudness-020 (2011-07) - **Last commit:** 2018-06-05 (inactive since 2018-06) - **Maintainers:** V. Portet - **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-08 ## What it implements | Metric | Edition | Functions | Status | Validation (as stated) | Notes | |---|---|---|---|---|---| | [Zwicker loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-zwicker.html) | [DIN 45631:1991](https://www.dinmedia.de/en/standard/din-45631/1666531) (stationary, from one-third-octave band levels) | — | available | own tests only | Port of the 1991 BASIC program "according to DIN 45631 (ISO 532B)", the program that accompanies DIN 45631:1991; the same program is the basis of deeuu/loudness. | ## 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), DIN 45631:1991: own tests only - Ported or adapted from BASIC program of DIN 45631 (Zwicker et al., 1991). - The documentation in the release archive says that tests with "classical cases", such as the included test WAV files, "seems to give correct results", and invites users to compare the output with that of the original BASIC program. ## Notes - Partly ported from the BASIC "Program for calculating loudness according to DIN 45631 (ISO 532B)", published in the Journal of the Acoustical Society of Japan in 1991, as obtained from Osaka University's website. - Distributed as release archives on SourceForge, from release 010 (2010-04-15) to zwickerloudness-020 (2011-07-01). The last-commit date given here (2018-06-05) is the project's "Last Update" date on SourceForge, not a commit date. ## Before you rely on it - Stationary sounds only; there is no procedure for time-varying sounds. ## Sources - https://sourceforge.net/projects/zwickerloudness/ - https://sourceforge.net/projects/zwickerloudness/files/ - https://sourceforge.net/projects/zwickerloudness/files/README.TXT/download - https://sourceforge.net/projects/zwickerloudness/files/zwickerloudness-020/loudness-020.tar.gz/download --- # PsychoBox > 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/psychobox.html Desktop application (PySide6 GUI) for playing, editing, filtering and analysing audio. Its psychoacoustic metrics are computed by MoSQITo 1.2.1: Zwicker loudness, ECMA-418-2 loudness, DIN 45692 sharpness, Daniel & Weber roughness and ECMA-418-2 roughness. - **Repository:** https://github.com/henriquealende/PsychoBox - **Documentation:** https://github.com/henriquealende/PsychoBox/tree/main/Documentation - **Language:** Python - **Kind:** Application (A program to run, with a graphical or command-line interface; no programming needed.) - **Group:** other (Tools that do not compute the metrics themselves: interfaces, front ends and wrappers that call one of the listed projects.) - **Licence:** MIT - **Latest release:** no release - **Last commit:** 2026-03-16 (active) - **GitHub stars:** 10 - **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-06 ## 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) (stationary) | `Loudness.loudnessZWK` | available | not stated | Calls `loudness_zwst` of MoSQITo 1.2.1. | | [Sottek Hearing Model loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-ecma-418-2.html) | [ECMA-418-2:2022 (2nd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_2nd_edition_december_2022.pdf) (Clause 5 hearing-model loudness only) | `Loudness.loudnessECMA` | available | not stated | Calls `loudness_ecma` of MoSQITo 1.2.1 (ECMA-418-2:2022, Clause 5 only). | | [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html) | [DIN 45692:2009](https://www.dinmedia.de/en/standard/din-45692/117635111) | `Sharpnes_DIN.sharpnessCalculation` | available | not stated | Calls `sharpness_din_st` of MoSQITo 1.2.1 with the DIN weighting. | | [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.roughnessDW` | available | not stated | Calls `roughness_dw` of MoSQITo 1.2.1. | | [Sottek Hearing Model roughness](https://zhenxianli.github.io/LISQM/metrics/roughness-ecma-418-2.html) | [ECMA-418-2:2022 (2nd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_2nd_edition_december_2022.pdf) | `Roughness.roughnessECMA` | available | not stated | Calls `roughness_ecma` of MoSQITo 1.2.1, whose bibliography cites ECMA-418-2:2022. | ## 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 - `requirements.txt` pins `mosqito==1.2.1`; PsychoBox itself states no standard editions. - Also does recording and binaural playback correction. An install guide and a tutorial (PDF) are in the Documentation folder. - Listed as an end-user application, although its metric values come from MoSQITo. Wrappers that are neither an application nor an established library are recorded in `data/ignored.yaml` instead. ## Before you rely on it - All metric values come from MoSQITo 1.2.1, whose ECMA-418-2 functions follow the 2nd edition (2022), two editions behind the current one. ## Sources - https://github.com/henriquealende/PsychoBox - https://github.com/henriquealende/PsychoBox/blob/main/README.md - https://github.com/henriquealende/PsychoBox/blob/main/requirements.txt - https://github.com/henriquealende/PsychoBox/tree/main/Psychoacoustics - https://github.com/Eomys/MoSQITo/blob/master/docs/ref.bib --- # Soundscapy > 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/soundscapy.html Python library for soundscape assessment. Its optional audio module computes psychoacoustic metrics of binaural recordings, per channel, by calling MoSQITo: time-varying Zwicker loudness, DIN 45692 sharpness and Daniel & Weber roughness. - **Repository:** https://github.com/MitchellAcoustics/Soundscapy - **Documentation:** https://soundscapy.readthedocs.io/en/latest/ - **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:** other (Tools that do not compute the metrics themselves: interfaces, front ends and wrappers that call one of the listed projects.) - **Licence:** BSD-3-Clause - **Package:** PyPI `soundscapy` (https://pypi.org/project/soundscapy/) - **Install:** `pip install "soundscapy[audio]"` - **Latest release:** v0.8.5 (2026-05) - **Last commit:** 2026-05-14 (active) - **GitHub stars:** 59 - **Maintainers:** Andrew Mitchell - **AI assistance:** disclosed — Commit metadata only; the README does not mention AI. At least 31 commits from March to May 2026 carry co-author lines for Claude or Copilot, and eight commits are authored by copilot-swe-agent[bot]. - **Paper:** Mitchell, A., Aletta, F., & Kang, J. (2022). How to analyse and represent quantitative soundscape data. *JASA Express Letters*, 2, 037201. https://doi.org/10.1121/10.0009794 - **How to cite:** Cite the paper above. The repository has a [CITATION.cff](https://github.com/MitchellAcoustics/Soundscapy/blob/main/CITATION.cff) file. Name the version or commit you used. - **Entry checked:** 2026-10-06 ## 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) (time-varying, per channel) | `Binaural.mosqito_metric`, `process_all_metrics` | available | not stated | Calls `loudness_zwtv`. | | [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html) | [DIN 45692:2009](https://www.dinmedia.de/en/standard/din-45692/117635111) | `Binaural.mosqito_metric`, `process_all_metrics` | available | not stated | Calls `sharpness_din_from_loudness`, `sharpness_din_perseg` or `sharpness_din_tv`; the weighting can be chosen. | | [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) | `Binaural.mosqito_metric`, `process_all_metrics` | available | not stated | Calls `roughness_dw`. | ## 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 psychoacoustic functions need the optional `audio` extra (MoSQITo 1.2.1 or newer). Environmental acoustic metrics come from acoustic-toolbox and ecoacoustic indices from scikit-maad. - Issue [#123](https://github.com/MitchellAcoustics/Soundscapy/issues/123), open since 2025-10-29, plans to integrate sottek-hearing-model for ECMA-418-2 metrics; its branch has no such code yet. - The paper the README asks users to cite covers soundscape data analysis, not the psychoacoustic functions. ## Before you rely on it - The psychoacoustic values are computed by MoSQITo, so their editions and accuracy are those of the installed MoSQITo version. ## Sources - https://github.com/MitchellAcoustics/Soundscapy - https://github.com/MitchellAcoustics/Soundscapy/blob/main/README.md - https://github.com/MitchellAcoustics/Soundscapy/blob/main/src/soundscapy/audio/metrics.py - https://github.com/MitchellAcoustics/Soundscapy/issues/123 - https://pypi.org/project/soundscapy/ --- # ZwickerLoudnessAudio.jl > 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/zwickerloudnessaudio-jl.html **Newly released project.** First registered in June 2026. Not yet seen to be widely used in the community. Check its validation before relying on it. Julia front end to ZwickerLoudness.jl that computes ISO 532-1:2017 Zwicker loudness from waveforms or WAV files: stationary loudness, and since v0.3.0 time-varying loudness with N5 and N10. - **Repository:** https://github.com/slink/ZwickerLoudnessAudio.jl - **Language:** Julia - **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:** other (Tools that do not compute the metrics themselves: interfaces, front ends and wrappers that call one of the listed projects.) - **Licence:** MIT — The README credits MoSQITo (Apache-2.0) for the transcribed time-varying filter tables. - **Package:** Julia General `ZwickerLoudnessAudio` (https://juliahub.com/ui/Packages/General/ZwickerLoudnessAudio) - **Install:** `using Pkg; Pkg.add("ZwickerLoudnessAudio")` - **Latest release:** v0.3.0 (2026-09) - **Last commit:** 2026-09-02 (active) - **GitHub stars:** 2 - **Maintainers:** slink - **AI assistance:** not stated - **How to cite:** The README links a [Zenodo DOI](https://zenodo.org/badge/latestdoi/1253784080) for the latest version. Name the version or commit you used. - **Entry checked:** 2026-10-06 ## 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) (stationary, from a waveform or WAV file; since 0.2.0) | `loudness_zwst`, `band_levels` | available | standard or paper data | Computes the third-octave levels itself (per-band Butterworth filters of order 3 by default, as in MoSQITo) and passes them to ZwickerLoudness.jl for the loudness. | | [Zwicker loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-zwicker.html) | [ISO 532-1:2017](https://www.iso.org/standard/63077.html) (time-varying, from a waveform or WAV file at 48 kHz; since 0.3.0) | `loudness_zwtv` | available | standard or paper data; also compared with MoSQITo (its source) | The Annex A filter cascade is transcribed from MoSQITo (`_third_octave_levels`, `_square_and_smooth`). | ## 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 (stationary, from a waveform or WAV file): standard or paper data - ISO 532-1 Annex B signals 2–5, synthesised in-process, are within the standard's ±5 % (+2.9 %, +3.6 %, +0.5 % and +2.6 % per the README). - [Zwicker loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-zwicker.html), ISO 532-1:2017 (time-varying, from a waveform or WAV file at 48 kHz): standard or paper data; also compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (its source) - Ported or adapted from **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**. It was compared with the code it was ported from, which checks the port only. - Cross-checked end to end with MoSQITo `loudness_zwtv` (N(t) about 3e-16 relative, N5/N10 about 2e-15 absolute). - An Annex B.4 test is skipped when the ISO recording is not available locally. ## Before you compare numbers Implementations of the same metric can give different numbers without either being wrong. Check these choices first. - [Zwicker loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-zwicker.html) (ISO 532-1:2017): Stationary loudness resamples input below 48 kHz to 48 kHz (polyphase), with a warning. - [Zwicker loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-zwicker.html) (ISO 532-1:2017): Time-varying loudness accepts 48 kHz input only (an error otherwise). ## Notes - Depends on ZwickerLoudness.jl (compat 0.3), which does the loudness calculation from band levels; this package computes the band levels. - First registered in the Julia General registry as version 0.2.0 (2026-06-01). ## Sources - https://github.com/slink/ZwickerLoudnessAudio.jl - https://github.com/slink/ZwickerLoudnessAudio.jl/blob/main/README.md - https://github.com/slink/ZwickerLoudnessAudio.jl/releases - https://github.com/JuliaRegistries/General/tree/master/Z/ZwickerLoudnessAudio --- # PsyTools > 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/psytools.html **Status unknown.** The repository cannot be opened without a login. It redirects to the TU Graz GitLab login page, while the author's profile page on the same server is public (checked 2026-10-07). What it implements has not been verified, so it is not listed under the metrics. Python toolbox for psychoacoustic analysis from TU Graz, described in a 2026 student conference paper. - **Repository:** https://gitlab.tugraz.at/11F34386B3DC1474/psytools - **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:** status unknown (Projects whose code could not be opened, for example because the repository needs a login. What they implement is unverified, so they are listed with what they claim and not under the metrics.) - **Licence:** unknown - **Latest release:** unknown - **Last commit:** unknown (unknown) - **Maintainers:** Eugen-Maximilian Stangl, Julia Donnerer - **AI assistance:** not stated - **Paper:** Stangl, E.-M., & Donnerer, J. (2026). PsyTools: An open-source Python toolbox for standardized psychoacoustic analysis. *POSTERS 2026: Proceedings of the International Student Scientific Conference Poster*, Czech Technical University in Prague, 172–173. https://tugraz.elsevierpure.com/en/publications/psytools-an-open-source-python-toolbox-for-standardized-psychoaco/ - **How to cite:** Cite the paper above. Name the version or commit you used. - **Entry checked:** 2026-10-07 ## What it is said to implement A conference paper describes an open-source Python toolbox for standardised psychoacoustic analysis: loudness, sharpness, fluctuation strength, roughness, tonality, psychoacoustic annoyance, LAeq and LAmax, following ISO 532-1, DIN 45692 and ECMA-418, with the Zwicker model and the Sottek Hearing Model. As described in the sources below; the code itself could not be checked. ## Sources - https://tugraz.elsevierpure.com/en/publications/psytools-an-open-source-python-toolbox-for-standardized-psychoaco/ - https://gitlab.tugraz.at/11F34386B3DC1474/psytools --- # Project map > 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/map.html Each line of the map joins two projects: code ported or adapted from another project, the author's own code moved between projects, a project that uses another one at run time, results checked against another project, or a shared contributor. The lines come from the implementation rows on the project pages. On the web page, arrows point from the source to the project that uses it, and a check points from the project to the one it checked its results against. ## Kinds of line - **Ported or adapted from another project.** The project's code for a metric was ported from the source (translated into another language) or adapted from it (reused with changes), or the whole project continues the source. A grey box is a program published with a standard or a paper. - **The author's own code.** The code was written by someone who also maintains the project that ported or adapted it: a contribution, a move or a translation within the same team, not a port by someone else. - **Used at run time.** The project calls the source to compute the metric, or needs its results as input. - **Results checked against.** The arrow points from the project to the one it checked its results against. Comparisons with the code a project was ported or adapted from, with a port of its own code or with another port of the same code are not drawn, because they only show that two versions of the same code agree. - **Same contributor.** Someone has worked on both projects, as a maintainer or with code of their own. Not drawn beside a line of the author's own code, which says the same. ## Ported or adapted from another project - From [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html): **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (Zwicker loudness and Roughness (Daniel & Weber)) - From BASIC program of DIN 45631 (Zwicker et al., 1991): **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (Zwicker loudness); [ITA-Toolbox](https://zhenxianli.github.io/LISQM/projects/ita-toolbox.html) (Zwicker loudness); [deeuu/loudness](https://zhenxianli.github.io/LISQM/projects/deeuu-loudness.html) (Zwicker loudness); [zwickerloudness](https://zhenxianli.github.io/LISQM/projects/zwickerloudness-sourceforge.html) (Zwicker loudness) - From [python-acoustics](https://zhenxianli.github.io/LISQM/projects/python-acoustics.html): [acoustic-toolbox](https://zhenxianli.github.io/LISQM/projects/acoustic-toolbox.html) (Tonal audibility (ISO 1996-2)) - From ISO 532-1 Annex A reference program: [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html) (Zwicker loudness); [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) (Zwicker loudness) - From **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**: [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html) (Zwicker loudness and Roughness (Daniel & Weber)); [Kirin Hypha](https://zhenxianli.github.io/LISQM/projects/kirin-hypha.html) (Zwicker loudness and Sharpness); [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html) (Zwicker loudness, Sottek Hearing Model loudness, Sharpness, Roughness (Daniel & Weber), Sottek Hearing Model roughness, Tone-to-noise ratio and prominence ratio, and Equal-loudness contours); [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html) (Roughness (Daniel & Weber)); [ZwickerLoudness.jl](https://zhenxianli.github.io/LISQM/projects/zwickerloudness-jl.html) (Zwicker loudness); [MoSQITo-FDP](https://zhenxianli.github.io/LISQM/projects/mosqito-fdp.html) (Tone-to-noise ratio and prominence ratio); [ZwickerLoudnessAudio.jl](https://zhenxianli.github.io/LISQM/projects/zwickerloudnessaudio-jl.html) (Zwicker loudness) - From **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**: [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html) (Zwicker loudness, Sottek Hearing Model loudness, Roughness (Daniel & Weber), Sottek Hearing Model roughness, Tonality (Aures), and Sottek Hearing Model tonality); [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) (Zwicker loudness, Sharpness, Roughness (Daniel & Weber), Fluctuation strength (Osses et al.), Tonality (Aures), Psychoacoustic annoyance, and Perceived noise level and EPNL) - From [AMT](https://zhenxianli.github.io/LISQM/projects/amt.html): [NumpyLibforPsychoAcoustic](https://zhenxianli.github.io/LISQM/projects/numpylib-psychoacoustic.html) (Moore–Glasberg loudness and Time-varying loudness (Moore–Glasberg–Schlittenlacher)); [torch_amt](https://zhenxianli.github.io/LISQM/projects/torch-amt.html) (Time-varying loudness (Moore–Glasberg–Schlittenlacher)) - From [iso532-3 (tv2018.m)](https://zhenxianli.github.io/LISQM/projects/js2251-iso532-3.html): [LoudnessModel](https://zhenxianli.github.io/LISQM/projects/loudnessmodel.html) (Time-varying loudness (Moore–Glasberg–Schlittenlacher)) ## The author's own code - From [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (Mike Lotinga): **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (Sottek Hearing Model loudness, Sottek Hearing Model roughness, and Sottek Hearing Model tonality); **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** (Sottek Hearing Model loudness, Sottek Hearing Model roughness, Sottek Hearing Model fluctuation strength, and Sottek Hearing Model tonality) - From [fluctuation-strength-TUe](https://zhenxianli.github.io/LISQM/projects/fluctuation-strength-tue.html) (Alejandro Osses): **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (Fluctuation strength (Osses et al.)) - From [PsySound3](https://zhenxianli.github.io/LISQM/projects/psysound3.html) (Densil Cabrera): [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html) (Zwicker loudness, Moore–Glasberg loudness, Time-varying loudness (Moore–Glasberg–Schlittenlacher), and Roughness (Daniel & Weber)) - From **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (Daniel Jiménez-Caminero Costa): [MoSQITo-FDP](https://zhenxianli.github.io/LISQM/projects/mosqito-fdp.html) (Sottek Hearing Model loudness) ## Used at run time - [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html) needs [ZwickerLoudness.jl](https://zhenxianli.github.io/LISQM/projects/zwickerloudness-jl.html) (Sharpness and Psychoacoustic annoyance) - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) calls **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (Zwicker loudness, Sharpness, and Roughness (Daniel & Weber)) - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) calls **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (Zwicker loudness, Sharpness, Roughness (Daniel & Weber), and Sottek Hearing Model tonality) - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) calls **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** (Sottek Hearing Model loudness, Sottek Hearing Model roughness, and Sottek Hearing Model tonality) - [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) calls **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** (Sottek Hearing Model loudness, Sottek Hearing Model roughness, and Sottek Hearing Model tonality) - [PsychoBox](https://zhenxianli.github.io/LISQM/projects/psychobox.html) calls **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (Zwicker loudness, Sottek Hearing Model loudness, Sharpness, Roughness (Daniel & Weber), and Sottek Hearing Model roughness) - [Soundscapy](https://zhenxianli.github.io/LISQM/projects/soundscapy.html) calls **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (Zwicker loudness, Sharpness, and Roughness (Daniel & Weber)) - [ZwickerLoudnessAudio.jl](https://zhenxianli.github.io/LISQM/projects/zwickerloudnessaudio-jl.html) calls [ZwickerLoudness.jl](https://zhenxianli.github.io/LISQM/projects/zwickerloudness-jl.html) (Zwicker loudness) ## Results checked against another project - [ecma418-torch](https://zhenxianli.github.io/LISQM/projects/ecma418-torch.html) against **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** (Sottek Hearing Model roughness and Sottek Hearing Model fluctuation strength) - [iso532-1-rs](https://zhenxianli.github.io/LISQM/projects/iso532-1-rs.html) against **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (Zwicker loudness) - [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) against **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (Fluctuation strength (Osses et al.)) - [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html) against **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (Sharpness) - [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html) against **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (Fluctuation strength (Osses et al.) and Psychoacoustic annoyance) - [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) against **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (Tone-to-noise ratio and prominence ratio) - [SoundPalette](https://zhenxianli.github.io/LISQM/projects/soundpalette.html) against **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (Zwicker loudness, Sharpness, and Roughness (Daniel & Weber)) ## Same contributor - **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** and **[sottek-hearing-model](https://zhenxianli.github.io/LISQM/projects/sottek-hearing-model.html)** (Mike Lotinga) - [acoustic-toolbox](https://zhenxianli.github.io/LISQM/projects/acoustic-toolbox.html) and [Soundscapy](https://zhenxianli.github.io/LISQM/projects/soundscapy.html) (Andrew Mitchell) - [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html) and [ZwickerLoudness.jl](https://zhenxianli.github.io/LISQM/projects/zwickerloudness-jl.html) (slink) - [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html) and [ZwickerLoudnessAudio.jl](https://zhenxianli.github.io/LISQM/projects/zwickerloudnessaudio-jl.html) (slink) - [ZwickerLoudness.jl](https://zhenxianli.github.io/LISQM/projects/zwickerloudness-jl.html) and [ZwickerLoudnessAudio.jl](https://zhenxianli.github.io/LISQM/projects/zwickerloudnessaudio-jl.html) (slink) On the map without a line, as no relation is recorded for them: [PSYCHO](https://zhenxianli.github.io/LISQM/projects/pd-psycho.html), [PyDSM](https://zhenxianli.github.io/LISQM/projects/pydsm.html), [HAW loudness tool](https://zhenxianli.github.io/LISQM/projects/haw-specific-loudness.html), [IoSR Matlab Toolbox](https://zhenxianli.github.io/LISQM/projects/iosr-matlab-toolbox.html), [PsychoacousticParametersMeasurer](https://zhenxianli.github.io/LISQM/projects/psychoacoustic-parameters-measurer.html), [SUAVE](https://zhenxianli.github.io/LISQM/projects/suave.html), [Swift & Gee codes](https://zhenxianli.github.io/LISQM/projects/rapid-loudness-sharpness.html), and [Zhen-Ni/epnl](https://zhenxianli.github.io/LISQM/projects/zhen-ni-epnl.html). Left out, as their code could not be opened: [PsyTools](https://zhenxianli.github.io/LISQM/projects/psytools.html). --- # Standards and models > 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/standards.html All documents the list refers to, newest first. Each implementation in the list is tied to one of these editions. They are also available as BibTeX, together with the papers that describe the listed software: https://zhenxianli.github.io/LISQM/references.bib ## Standards and regulations | Date | Document | Title | Status | Used by | |---|---|---|---|---| | 2026-04 | [ISO/AWI 26573](https://www.iso.org/standard/93922.html) | Acoustics — Procedures for assessment and prediction of noise-induced perceptual annoyance through laboratory-based listening tests | in development | [Psychoacoustic annoyance](https://zhenxianli.github.io/LISQM/metrics/psychoacoustic-annoyance.html) | | 2025-06 | [ECMA-418-2:2025 (4th ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_4th_edition_june_2025.pdf) | Psychoacoustic metrics for ITT equipment — Part 2 (methods for describing human perception based on the Sottek Hearing Model) | current | [Sottek Hearing Model loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-ecma-418-2.html), [Sottek Hearing Model roughness](https://zhenxianli.github.io/LISQM/metrics/roughness-ecma-418-2.html), [Sottek Hearing Model fluctuation strength](https://zhenxianli.github.io/LISQM/metrics/fluctuation-strength-ecma-418-2.html), [Sottek Hearing Model tonality](https://zhenxianli.github.io/LISQM/metrics/tonality-ecma-418-2.html) | | 2024-12 | [ECMA-418-2:2024 (3rd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_3rd_edition_december_2024.pdf) | Psychoacoustic metrics for ITT equipment — Part 2 (methods for describing human perception based on the Sottek Hearing Model) | superseded | [Sottek Hearing Model loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-ecma-418-2.html), [Sottek Hearing Model roughness](https://zhenxianli.github.io/LISQM/metrics/roughness-ecma-418-2.html), [Sottek Hearing Model tonality](https://zhenxianli.github.io/LISQM/metrics/tonality-ecma-418-2.html) | | 2024-12 | [ECMA-418-1:2024 (3rd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-1_3rd_edition_december_2024.pdf) | Psychoacoustic metrics for ITT equipment — Part 1 (prominent discrete tones) | current | [Tone-to-noise ratio and prominence ratio](https://zhenxianli.github.io/LISQM/metrics/tone-to-noise-prominence-ratio.html) | | 2024-11 | [ISO/CD 532-3](https://www.iso.org/standard/90816.html) | Acoustics — Methods for calculating loudness — Part 3: Moore-Glasberg-Schlittenlacher method (2nd edition) | in development | [Time-varying loudness (Moore–Glasberg–Schlittenlacher)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.html) | | 2024-11 | [ISO/CD 532-2](https://www.iso.org/standard/90812.html) | Acoustics — Methods for calculating loudness — Part 2: Moore-Glasberg method (2nd edition) | in development | [Moore–Glasberg loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg.html) | | 2024-11 | [ISO/CD 532-1](https://www.iso.org/standard/90809.html) | Acoustics — Methods for calculating loudness — Part 1: Zwicker method (2nd edition) | in development | [Zwicker loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-zwicker.html) | | 2024-11 | [DIN 38455:2024](https://www.dinmedia.de/en/standard/din-38455/376186532) | Berechnung der Hörempfindung Rauigkeit (Calculation of the auditory sensation of roughness) | current | [Roughness (DIN 38455)](https://zhenxianli.github.io/LISQM/metrics/roughness-din-38455.html) | | 2023-07 | [ISO 532-3:2023](https://www.iso.org/standard/69856.html) | Acoustics — Methods for calculating loudness — Part 3: Moore-Glasberg-Schlittenlacher method | current | [Time-varying loudness (Moore–Glasberg–Schlittenlacher)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.html) | | 2023-03 | [ISO 226:2023](https://www.iso.org/standard/83117.html) | Acoustics — Normal equal-loudness-level contours | current | [Equal-loudness contours](https://zhenxianli.github.io/LISQM/metrics/equal-loudness-contours.html) | | 2022-12 | [ISO/TS 20065:2022](https://www.iso.org/standard/81518.html) | Acoustics — Objective method for assessing the audibility of tones in noise — Engineering method | current | [Audibility of tones in noise (ISO/TS 20065)](https://zhenxianli.github.io/LISQM/metrics/tonal-audibility-iso-20065.html) | | 2022-12 | [ECMA-418-2:2022 (2nd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_2nd_edition_december_2022.pdf) | Psychoacoustic metrics for ITT equipment — Part 2 (models based on human perception) | superseded | [Sottek Hearing Model loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-ecma-418-2.html), [Sottek Hearing Model roughness](https://zhenxianli.github.io/LISQM/metrics/roughness-ecma-418-2.html), [Sottek Hearing Model tonality](https://zhenxianli.github.io/LISQM/metrics/tonality-ecma-418-2.html) | | 2022-12 | [ECMA-418-1:2022 (2nd ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-1_2nd_edition_december_2022.pdf) | Psychoacoustic metrics for ITT equipment — Part 1 (prominent discrete tones) | superseded | [Tone-to-noise ratio and prominence ratio](https://zhenxianli.github.io/LISQM/metrics/tone-to-noise-prominence-ratio.html) | | 2022-07 | [ISO/PAS 1996-3:2022](https://www.iso.org/standard/77035.html) | Acoustics — Description, measurement and assessment of environmental noise — Part 3: Objective method for the measurement of prominence of impulsive sounds and for adjustment of LAeq | current | [Impulse prominence](https://zhenxianli.github.io/LISQM/metrics/impulsiveness.html) | | 2020-12 | [ECMA-418-2:2020 (1st ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-2_1st_edition_december_2020.pdf) | Psychoacoustic metrics for ITT equipment — Part 2 (models based on human perception) | superseded | [Sottek Hearing Model loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-ecma-418-2.html), [Sottek Hearing Model roughness](https://zhenxianli.github.io/LISQM/metrics/roughness-ecma-418-2.html), [Sottek Hearing Model tonality](https://zhenxianli.github.io/LISQM/metrics/tonality-ecma-418-2.html) | | 2020-12 | [ECMA-418-1:2020 (1st ed.)](https://ecma-international.org/wp-content/uploads/ECMA-418-1_1st_edition_december_2020.pdf) | Psychoacoustic metrics for ITT equipment — Part 1 (prominent discrete tones) | superseded | [Tone-to-noise ratio and prominence ratio](https://zhenxianli.github.io/LISQM/metrics/tone-to-noise-prominence-ratio.html) | | 2019-12 | [ECMA-74:2019 (17th ed.)](https://ecma-international.org/publications-and-standards/standards/ecma-74/) | Measurement of airborne noise emitted by information technology and telecommunications equipment | superseded | [Sottek Hearing Model tonality](https://zhenxianli.github.io/LISQM/metrics/tonality-ecma-418-2.html), [Tone-to-noise ratio and prominence ratio](https://zhenxianli.github.io/LISQM/metrics/tone-to-noise-prominence-ratio.html) | | 2017-07 | [ISO 1996-2:2017](https://www.iso.org/standard/59766.html) | Acoustics — Description, measurement and assessment of environmental noise — Part 2: Determination of sound pressure levels | current | [Tonal audibility (ISO 1996-2)](https://zhenxianli.github.io/LISQM/metrics/tonal-audibility-iso-1996-2.html) | | 2017-07 | [ICAO Annex 16, Vol. I](https://store.icao.int/en/annex-16-environmental-protection-volume-i-aircraft-noise) | Annex 16 to the Convention on International Civil Aviation — Environmental Protection — Volume I: Aircraft Noise | current | [Perceived noise level and EPNL](https://zhenxianli.github.io/LISQM/metrics/epnl.html) | | 2017-06 | [ISO 532-2:2017](https://www.iso.org/standard/63078.html) | Acoustics — Methods for calculating loudness — Part 2: Moore-Glasberg method | current | [Moore–Glasberg loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg.html) | | 2017-06 | [ISO 532-1:2017](https://www.iso.org/standard/63077.html) | Acoustics — Methods for calculating loudness — Part 1: Zwicker method | current | [Zwicker loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-zwicker.html) | | 2016-07 | [ISO/PAS 20065:2016](https://www.iso.org/standard/66941.html) | Acoustics — Objective method for assessing the audibility of tones in noise — Engineering method | withdrawn | [Audibility of tones in noise (ISO/TS 20065)](https://zhenxianli.github.io/LISQM/metrics/tonal-audibility-iso-20065.html) | | 2012-11 | [IEC 61400-11:2012+AMD1:2018](https://webstore.iec.ch/en/publication/63367) | Wind turbines — Part 11: Acoustic noise measurement techniques | current | [Tonal audibility of wind turbines (IEC 61400-11)](https://zhenxianli.github.io/LISQM/metrics/tonal-audibility-iec-61400-11.html) | | 2010-03 | [DIN 45631/A1:2010](https://www.dinmedia.de/en/standard/din-45631-a1/122476084) | Calculation of loudness level and loudness from the sound spectrum — Zwicker method — Amendment 1: Calculation of the loudness of time-variant sound | current | [Zwicker loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-zwicker.html) | | 2009-08 | [DIN 45692:2009](https://www.dinmedia.de/en/standard/din-45692/117635111) | Messtechnische Simulation der Hörempfindung Schärfe (Measurement technique for the simulation of the auditory sensation of sharpness) | current | [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html) | | 2007-03 | [ISO 1996-2:2007](https://www.iso.org/standard/41860.html) | Acoustics — Description, measurement and assessment of environmental noise — Part 2: Determination of environmental noise levels | withdrawn | [Tonal audibility (ISO 1996-2)](https://zhenxianli.github.io/LISQM/metrics/tonal-audibility-iso-1996-2.html) | | 2007 | [ANSI/ASA S3.4-2007](https://webstore.ansi.org/standards/asa/ANSIASAS32007R2020) | Procedure for the Computation of Loudness of Steady Sounds | current | [Moore–Glasberg loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg.html) | | 2005-03 | [DIN 45681:2005](https://www.dinmedia.de/en/standard/din-45681/76463232) | Akustik — Bestimmung der Tonhaltigkeit von Geräuschen und Ermittlung eines Tonzuschlages für die Beurteilung von Geräuschimmissionen | current | [Tonal components (DIN 45681)](https://zhenxianli.github.io/LISQM/metrics/tonality-din-45681.html) | | 2003-08 | [ISO 226:2003](https://www.iso.org/standard/34222.html) | Acoustics — Normal equal-loudness-level contours | withdrawn | [Equal-loudness contours](https://zhenxianli.github.io/LISQM/metrics/equal-loudness-contours.html) | | 2002-12 | [IEC 61400-11:2002](https://webstore.iec.ch/en/publication/19736) | Wind turbine generator systems — Part 11: Acoustic noise measurement techniques | superseded | [Tonal audibility of wind turbines (IEC 61400-11)](https://zhenxianli.github.io/LISQM/metrics/tonal-audibility-iec-61400-11.html) | | 2002-11 | E DIN 45681:2002-11 | Akustik — Bestimmung der Tonhaltigkeit von Geräuschen und Ermittlung eines Tonzuschlages für die Beurteilung von Geräuschimmissionen (draft) | superseded | [Tonal components (DIN 45681)](https://zhenxianli.github.io/LISQM/metrics/tonality-din-45681.html) | | 2002-07 | [14 CFR Part 36](https://www.ecfr.gov/current/title-14/chapter-I/subchapter-C/part-36) | Noise standards: aircraft type and airworthiness certification (Appendix A: EPNL) | current | [Perceived noise level and EPNL](https://zhenxianli.github.io/LISQM/metrics/epnl.html) | | 2002-05 | [NT ACOU 112](http://www.nordtest.info/wp/2002/05/01/acoustics-prominence-of-impulsive-sounds-and-for-adjustment-of-laeq-nt-acou-112/) | Acoustics: Prominence of impulsive sounds and for adjustment of LAeq | current | [Impulse prominence](https://zhenxianli.github.io/LISQM/metrics/impulsiveness.html) | | 1991-03 | [DIN 45631:1991](https://www.dinmedia.de/en/standard/din-45631/1666531) | Berechnung des Lautstärkepegels und der Lautheit aus dem Geräuschspektrum; Verfahren nach E. Zwicker | current | [Zwicker loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-zwicker.html) | | 1975-07 | [ISO 532:1975](https://www.iso.org/standard/4603.html) | Acoustics — Method for calculating loudness level | withdrawn | [Zwicker loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-zwicker.html) | ## Model papers, books and theses | Date | Document | Title | Status | Used by | |---|---|---|---|---| | 2025-07 | [Rizzi et al. (2025)](https://doi.org/10.2514/1.C038188) | Annoyance model assessments of urban air mobility vehicle operations | published | [Aural detectability](https://zhenxianli.github.io/LISQM/metrics/aural-detectability.html) | | 2018 | [Moore et al. (2018)](https://doi.org/10.1121/1.5027246) | Testing and refining a loudness model for time-varying sounds incorporating binaural inhibition | published | [Time-varying loudness (Moore–Glasberg–Schlittenlacher)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.html) | | 2017 | [Swift & Gee (2017)](https://doi.org/10.1121/1.5016193) | Extending sharpness calculation for an alternative loudness metric input | published | [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html) | | 2016 | [Osses et al. (2016)](https://doi.org/10.1121/2.0000410) | Modelling the sensation of fluctuation strength | published | [Fluctuation strength (Osses et al.)](https://zhenxianli.github.io/LISQM/metrics/fluctuation-strength-osses.html) | | 2016 | [Moore et al. (2016)](https://doi.org/10.1177/2331216516682698) | A loudness model for time-varying sounds incorporating binaural inhibition | published | [Time-varying loudness (Moore–Glasberg–Schlittenlacher)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.html) | | 2016 | [Di et al. (2016)](https://doi.org/10.1016/j.apacoust.2015.12.006) | Improvement of Zwicker's psychoacoustic annoyance model aiming at tonal noises | published | [Psychoacoustic annoyance](https://zhenxianli.github.io/LISQM/metrics/psychoacoustic-annoyance.html) | | 2011 | [Chen et al. (2011)](https://doi.org/10.1016/j.heares.2011.08.001) | A new method of calculating auditory excitation patterns and loudness for steady sounds | published | [Moore–Glasberg loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg.html) | | 2010 | [More (2010)](https://docs.lib.purdue.edu/dissertations/AAI3453255) | Aircraft noise characteristics and metrics | published | [Psychoacoustic annoyance](https://zhenxianli.github.io/LISQM/metrics/psychoacoustic-annoyance.html) | | 2007 | [Fastl & Zwicker (2007)](https://doi.org/10.1007/978-3-540-68888-4) | Psychoacoustics: Facts and Models (3rd edition) | published | [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html), [Fluctuation strength (Osses et al.)](https://zhenxianli.github.io/LISQM/metrics/fluctuation-strength-osses.html) | | 2002 | [Glasberg & Moore (2002)](https://aes2.org/publications/elibrary-page/?id=11081) | A model of loudness applicable to time-varying sounds | published | [Time-varying loudness (Moore–Glasberg–Schlittenlacher)](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg-time-varying.html) | | 2002 | [Chalupper & Fastl (2002)](https://www.ingentaconnect.com/contentone/dav/aaua/2002/00000088/00000003/art00009) | Dynamic loudness model (DLM) for normal and hearing-impaired listeners | published | [Zwicker loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-zwicker.html) | | 1999 | [Zwicker & Fastl (1999)](https://doi.org/10.1007/978-3-662-09562-1) | Psychoacoustics: Facts and Models (2nd edition) | published | [Psychoacoustic annoyance](https://zhenxianli.github.io/LISQM/metrics/psychoacoustic-annoyance.html) | | 1997 | [Moore, Glasberg & Baer (1997)](https://aes2.org/publications/elibrary-page/?id=10272) | A model for the prediction of thresholds, loudness, and partial loudness | published | [Moore–Glasberg loudness](https://zhenxianli.github.io/LISQM/metrics/loudness-moore-glasberg.html) | | 1997 | Daniel & Weber (1997) | Psychoacoustical roughness: implementation of an optimized model | published | [Roughness (Daniel & Weber)](https://zhenxianli.github.io/LISQM/metrics/roughness-daniel-weber.html) | | 1992 | Widmann (1992) | Ein Modell der psychoakustischen Lästigkeit von Schallen und seine Anwendung in der Praxis der Lärmbeurteilung | published | [Psychoacoustic annoyance](https://zhenxianli.github.io/LISQM/metrics/psychoacoustic-annoyance.html) | | 1985 | Aures (1985b) | Berechnungsverfahren für den sensorischen Wohlklang beliebiger Schallsignale | published | [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html), [Tonality (Aures)](https://zhenxianli.github.io/LISQM/metrics/tonality-aures.html) | | 1985 | Aures (1985a) | Ein Berechnungsverfahren der Rauhigkeit | published | [Roughness (Daniel & Weber)](https://zhenxianli.github.io/LISQM/metrics/roughness-daniel-weber.html) | | 1982 | [Terhardt et al. (1982)](https://doi.org/10.1121/1.387544) | Algorithm for extraction of pitch and pitch salience from complex tonal signals | published | [Tonality (Aures)](https://zhenxianli.github.io/LISQM/metrics/tonality-aures.html) | | 1974 | [von Bismarck (1974)](https://www.ingentaconnect.com/contentone/dav/aaua/1974/00000030/00000003/art00006) | Sharpness as an attribute of the timbre of steady sounds | published | [Sharpness](https://zhenxianli.github.io/LISQM/metrics/sharpness.html) | | 1974 | [Fidell et al. (1974)](https://doi.org/10.1177/001872087401600405) | Prediction of aural detectability of noise signals | published | [Aural detectability](https://zhenxianli.github.io/LISQM/metrics/aural-detectability.html) |