LISQM A List of Open-Source Implementations of Psychoacoustic and Sound Quality Metrics

Version 0.5.10 · data as of 28 October 2026
Source on GitHub

Projects Newly released projects

rota-order

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 nameROTA: Rotational Order Tracking and Analysis
Repositoryhttps://github.com/ZhenxianLi/rota-order
Documentationhttps://github.com/ZhenxianLi/rota-order#readme
LanguagePython
KindLibrary/Toolbox
Functions to call from your own code: a Python package, a MATLAB toolbox, or a C, C++, C#, Rust or Julia library.
Groupnewly released First released less than about a year ago, and not yet seen to be widely used in the community.
LicenceGPL-3.0-or-later
PackagePyPI rota-order
Installpip install rota-order
Latest release0.7.0 (2026-10)
Last commit2026-10-28 active
MaintainersZhenxian LI
AI assistancedisclosed (The README says that Claude (Anthropic) was used as an assistant during development.)
How to citeThe 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 file. Name the version or commit you used.
Entry checked28 October 2026

What it implements

MetricEditionFunctionsValidation (as stated)Notes
Zwicker loudnessISO 532-1:2017
time-varying, through MoSQITo's loudness_zwtv; since 0.6.0
rota.bridges.mosqito.loudnessown tests onlynew Computed by MoSQITo.
Zwicker loudnessISO 532-1:2017
time-varying, through SQAT v2.0's Loudness_ISO532_1 in MATLAB; since 0.6.0
rota.bridges.sqat.loudnessown tests onlynew Computed by SQAT.
Sottek Hearing Model loudnessECMA-418-2:2025 (4th ed.)
through sottek-hearing-model's shm_loudness_ecma_from_comp; since 0.6.0
rota.bridges.sottek_hearing_model.loudnessown tests onlynew Computed by sottek-hearing-model.
SharpnessDIN 45692:2009
through MoSQITo's sharpness_din_from_loudness; since 0.6.0
rota.bridges.mosqito.sharpnessown tests onlynew Computed by MoSQITo.
SharpnessDIN 45692:2009
through SQAT v2.0's Sharpness_DIN45692_from_loudness in MATLAB; since 0.6.0
rota.bridges.sqat.sharpnessown tests onlynew Computed by SQAT.
Roughness (Daniel & Weber)Daniel & Weber (1997)
through MoSQITo's roughness_dw; since 0.6.0
rota.bridges.mosqito.roughnessown tests onlynew Computed by MoSQITo.
Roughness (Daniel & Weber)Daniel & Weber (1997)
through SQAT v2.0's Roughness_Daniel1997 in MATLAB; since 0.6.0
rota.bridges.sqat.roughnessown tests onlynew Computed by SQAT.
Sottek Hearing Model roughnessECMA-418-2:2025 (4th ed.)
through sottek-hearing-model's shm_roughness_ecma; since 0.6.0
rota.bridges.sottek_hearing_model.roughnessown tests onlynew Computed by sottek-hearing-model.
Sottek Hearing Model tonalityECMA-418-2:2025 (4th ed.)
through sottek-hearing-model's shm_tonality_ecma; since 0.6.0
rota.bridges.sottek_hearing_model.tonalityown tests onlynew Computed by sottek-hearing-model.
Sottek Hearing Model tonalityECMA-418-2:2025 (4th ed.)
through SQAT v2.0's Tonality_ECMA418_2 in MATLAB; since 0.6.0
rota.bridges.sqat.tonalityown tests onlynew Computed by SQAT.
Tone-to-noise ratio and prominence ratioECMA-418-1:2024 (3rd ed.)
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_criterionstandard or paper data
(formula examples; no published TNR or PR value)
also compared with MoSQITo
new 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. Kinds of evidence.

Zwicker loudness · 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 · ISO 532-1:2017 (time-varying, through SQAT v2.0's Loudness_ISO532_1 in MATLAB)
Sharpness · DIN 45692:2009 (through SQAT v2.0's Sharpness_DIN45692_from_loudness in MATLAB)
Roughness (Daniel & Weber) · Daniel & Weber (1997) (through SQAT v2.0's Roughness_Daniel1997 in MATLAB)
Sottek Hearing Model tonality · 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 · ECMA-418-2:2025 (4th ed.)
Sottek Hearing Model roughness · 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 · 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) · 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 · 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 · ECMA-418-1:2024 (3rd ed.)

standard or paper data (formula examples; no published TNR or PR value) also compared with MoSQITo

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

For single metrics:

Tone-to-noise ratio and prominence ratio (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

Before you rely on it

Sources

  1. https://github.com/ZhenxianLi/rota-order/blob/main/README.md
  2. https://github.com/ZhenxianLi/rota-order/blob/main/LICENSE
  3. https://github.com/ZhenxianLi/rota-order/blob/main/CITATION.cff
  4. https://github.com/ZhenxianLi/rota-order/blob/main/CHANGELOG.md
  5. https://github.com/ZhenxianLi/rota-order/blob/main/src/rota/_prominence.py
  6. https://github.com/ZhenxianLi/rota-order/blob/main/src/rota/bridges/__init__.py
  7. https://github.com/ZhenxianLi/rota-order/blob/main/src/rota/bridges/_common.py
  8. https://github.com/ZhenxianLi/rota-order/blob/main/src/rota/bridges/mosqito.py
  9. https://github.com/ZhenxianLi/rota-order/blob/main/src/rota/bridges/sottek_hearing_model.py
  10. https://github.com/ZhenxianLi/rota-order/blob/main/src/rota/bridges/sqat.py
  11. https://github.com/ZhenxianLi/rota-order/blob/main/tests/test_prominence.py
  12. https://github.com/ZhenxianLi/rota-order/blob/main/tests/test_bridge_mosqito.py
  13. https://github.com/ZhenxianLi/rota-order/blob/main/tests/test_bridge_shm.py
  14. https://github.com/ZhenxianLi/rota-order/blob/main/tests/test_bridges.py
  15. https://github.com/ZhenxianLi/rota-order/blob/main/tests/test_bridges_sqat.py
  16. https://github.com/ZhenxianLi/rota-order/blob/main/pyproject.toml
  17. https://github.com/ZhenxianLi/rota-order/blob/main/.github/workflows/tests.yml
  18. https://pypi.org/project/rota-order/

Metrics, standards and papers, projects, function names and pages.