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

Metrics Tonality

Tone-to-noise ratio and prominence ratio (ECMA-418-1)

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:

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.

Earlier editions or related models: MoSQITo (Python; ECMA-74:2019 (17th ed.)), Mosqito.NET (C#; newly released, not yet seen to be widely used; ECMA-74:2019 (17th ed.)), and MoSQITo-FDP (Python; legacy, archived; ECMA-74:2019 (17th ed.); Annex D).

Editions and who implements them

DateEditionStatusWhat changedImplemented by
2024-12ECMA-418-1:2024 (3rd ed.)currentTNR procedure revised for repeatable results across FFT resolutions; terms rewritten.phonometry new, rota-order new
2022-12ECMA-418-1:2022 (2nd ed.)supersededMaximum tone bandwidth for TNR set to 15 % of the critical band; corrections.—
2020-12ECMA-418-1:2020 (1st ed.)supersededBased on, and mostly identical to, ECMA-74 Annex D.—
2019-12ECMA-74:2019 (17th ed.)supersededAnnex D, before ECMA-418-1 existed.MoSQITo, Mosqito.NET new, MoSQITo-FDP legacy

Project map

The project map, with only the lines for tone-to-noise ratio and prominence ratio between the projects listed for it. Agreement between a project and the code it was ported or adapted from only checks the port.

Project map for Tone-to-noise ratio and prominence ratio phonometry: Python py   phonometry no relation recorded MoSQITo: Python py   MoSQITo Mosqito.NET: C# c#   Mosqito.NET Ported or adapted: MoSQITo to Mosqito.NET, for ECMA-74:2019 (17th ed.) MoSQITo-FDP: Python py   MoSQITo-FDP Ported or adapted: MoSQITo to MoSQITo-FDP, for ECMA-74:2019 (17th ed.) Same contributor: MoSQITo and MoSQITo-FDP (Daniel Jiménez-Caminero Costa) rota-order: Python py   rota-order Results checked: rota-order against MoSQITo, for ECMA-418-1:2024 (3rd ed.)

Implementations

ProjectEditionFunctionsValidation (as stated)Notes
MoSQITo
Python
ECMA-74:2019 (17th ed.)
since 1.0.2
tnr_ecma_st, tnr_ecma_perseg, tnr_ecma_freq, pr_ecma_st, pr_ecma_perseg, pr_ecma_freqnot statedDocstrings say "ECMA 418-1" without an edition; the helper code and the bibliography cite ECMA-74 Annex D (17th edition, 2019).
phonometry
Python
ECMA-418-1:2024 (3rd ed.)
since 3.1.0
tone_to_noise_ratio, prominence_ratio, assess_tonesstandard or paper data
(formula examples; no published TNR or PR value)
new The "prominent" flag applies the numeric criterion only.
rota-order
Python
ECMA-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.
Mosqito.NET
C#
ECMA-74:2019 (17th ed.)Sq.TnrEcmaSt, Sq.TnrEcmaFreq, Sq.TnrEcmaPerSeg, Sq.PrEcmaSt, Sq.PrEcmaFreq, Sq.PrEcmaPerSegcompared with MoSQITo (its source)new The README cites ECMA-74 Annex D.
MoSQITo-FDP
Python
ECMA-74:2019 (17th ed.)
Annex D
comp_tnr, comp_prown tests onlylegacy

Projects in bold and other established projects come first, then newly released, developing and legacy ones. Validation is what each project says about its own testing. The details are below, and the kinds of evidence are explained on the About page. The project map above shows which project was ported or adapted from which.

See also: Tonality from the Sottek Hearing Model (ECMA-418-2), Audibility of tones in noise (ISO/TS 20065).

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. Kinds of evidence.

MoSQITo · ECMA-74:2019 (17th ed.)

not stated

  • The documentation marks it as available but not validated.
phonometry new · 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 new · 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.
Mosqito.NET new · ECMA-74:2019 (17th ed.)

compared with MoSQITo (its source)

Ported or adapted from MoSQITo. 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 legacy · ECMA-74:2019 (17th ed.)

own tests only

Ported or adapted from MoSQITo.

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

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