# 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
