# 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
