Time-varying loudness, Moore–Glasberg–Schlittenlacher (ISO 532-3)
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:
- Python phonometry new
- MATLAB iso532-3 (tv2018.m)
Earlier editions or related models: AMT (MATLAB, Octave; Moore et al. (2016); binaural), AMT (MATLAB, Octave; Glasberg & Moore (2002)), AARAE (MATLAB; Glasberg & Moore (2002); time-varying; one channel, or two channels for binaural loudness), torch_amt (Python; newly released, not yet seen to be widely used; Moore et al. (2016); binaural), NumpyLibforPsychoAcoustic (Python; newly released, not yet seen to be widely used; Glasberg & Moore (2002)), torch_amt (Python; newly released, not yet seen to be widely used; Glasberg & Moore (2002); short-term and long-term loudness), LoudnessModel (Python; developing; Moore et al. (2018); instantaneous, short-term and long-term loudness; binaural), deeuu/loudness (C++, Python; legacy, no commit since 2019-08; Glasberg & Moore (2002)), HAW loudness tool (MATLAB; legacy, no commit since 2022-12; Glasberg & Moore (2002); specific loudness over time on ERB bands; three temporal models), PsySound3 (MATLAB; legacy, no commit since 2015-03; Glasberg & Moore (2002); time-varying and binaural), and Swift & Gee codes (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 | in development | Second edition at committee-draft stage since November 2024. | — |
| 2023-07 | ISO 532-3:2023 | 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), phonometry new |
| 2018 | Moore et al. (2018) | published | Revised time constants. | LoudnessModel developing |
| 2016 | Moore et al. (2016) | published | Adds binaural inhibition. | AMT, torch_amt new |
| 2002 | Glasberg & Moore (2002) | published | Time-varying loudness model (short-term and long-term loudness). | AMT, AARAE, NumpyLibforPsychoAcoustic new, torch_amt new, deeuu/loudness legacy, HAW loudness tool legacy, PsySound3 legacy, Swift & Gee codes legacy |
Project map
The project map, with only the lines for time-varying loudness (Moore–Glasberg–Schlittenlacher) between the projects listed for it. Agreement between a project and the code it was ported or adapted from only checks the port.
- ported or adapted from another project
- the author's own code
- legacy legacy project
Scroll the picture sideways.
Implementations
| Project | Edition | Functions | Validation (as stated) | Notes |
|---|---|---|---|---|
| iso532-3 (tv2018.m) MATLAB | ISO 532-3:2023 reference MATLAB code referred to in ISO 532-3, per its readme | tv2018 | not stated | no licence Written by the model's authors (per the readme PDF). |
| AMT MATLAB Octave | Moore et al. (2016) 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 MATLAB Octave | Glasberg & Moore (2002) | glasberg2002 | standard or paper data | Listed as "GLASBERG2002 - Loudness model for time-variant signals". |
| AARAE MATLAB | Glasberg & Moore (2002) 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 Python | ISO 532-3:2023 since 3.1.0 | loudness_moore_glasberg_time | standard or paper data | new |
| torch_amt Python | Moore et al. (2016) binaural | torch_amt.models.Moore2016 | compared with AMT (its source) | new Described as a "1:1 port" of AMT moore2016, with outer and middle ear per ANSI S3.4-2007 (docstring). |
| NumpyLibforPsychoAcoustic Python | Glasberg & Moore (2002) | model.glasberg2002 | not stated | new no licence Present in the code but not described in the implementation document. |
| torch_amt Python | Glasberg & Moore (2002) short-term and long-term loudness | torch_amt.models.Glasberg2002 | compared with AMT (its source) | new Ported from AMT glasberg2002. |
| LoudnessModel Python | Moore et al. (2018) instantaneous, short-term and long-term loudness; binaural | tvl2018.compute_loudness, tvl2018_jax.compute_loudness | own tests only | developing |
| deeuu/loudness C++ Python | Glasberg & Moore (2002) | DynamicLoudnessGM2002 | own tests only | legacy 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 MATLAB | Glasberg & Moore (2002) specific loudness over time on ERB bands; three temporal models | loud_gui, matlab_loud | reference code: LOUDAES and TVL (Glasberg & Moore's programs) | legacy |
| PsySound3 MATLAB | Glasberg & Moore (2002) time-varying and binaural | @LoudnessMGB | not stated | legacy no licence The same analyser as the stationary entry; its description cites Glasberg & Moore (2002). |
| Swift & Gee codes MATLAB | Glasberg & Moore (2002) | Glasberg_loudness | not stated | legacy |
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: Moore–Glasberg loudness of stationary sounds (ISO 532-2, ANSI S3.4).
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.
- iso532-3 (tv2018.m) · 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 · Moore et al. (2016)
not stated
- There is no
exp_moore2016experiment script on the develop branch.
- There is no
- AMT · 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.
- Has the experiment script
- AARAE · Glasberg & Moore (2002)
not stated
Ported or adapted from PsySound3 (the author's own code).
- phonometry new · 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 new · Moore et al. (2016)
- torch_amt new · Glasberg & Moore (2002)
compared with AMT (its source)
Ported or adapted from AMT. 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 developing · Moore et al. (2018)
own tests only
Ported or adapted from iso532-3 (tv2018.m).
- 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 legacy · Glasberg & Moore (2002)
own tests only
No further details are recorded here.
- HAW loudness tool legacy · 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 new
- Documented deviation: it runs at the native sample rate instead of resampling to 32 kHz.
- HAW loudness tool legacy
- 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 legacy
- The code works at 32 kHz; other rates are resampled with the Signal Processing Toolbox's
resample.
- The code works at 32 kHz; other rates are resampled with the Signal Processing Toolbox's
References
- 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
- 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
- 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
- ISO 532-3:2023. Acoustics — Methods for calculating loudness — Part 3: Moore-Glasberg-Schlittenlacher method. https://www.iso.org/standard/69856.html
- ISO/CD 532-3. Acoustics — Methods for calculating loudness — Part 3: Moore-Glasberg-Schlittenlacher method (2nd edition). https://www.iso.org/standard/90816.html