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 Fluctuation strength

Fluctuation strength, Osses et al. model and Fastl & Zwicker formula

Fluctuation strength describes slow modulation around 4 Hz. Osses, García & Kohlrausch (2016) proposed a signal-based model; Fastl & Zwicker give a closed-form expression for modulated tones and noises. Neither is standardised. ECMA-418-2:2025 added a hearing-model method, listed on its own page.

There is no standard; the reference model is Osses et al. (2016). Open-source implementations of it:

Earlier editions or related models: phonometry (Python; newly released, not yet seen to be widely used; Fastl & Zwicker (2007); closed-form expression for amplitude-modulated noise) and PsychoacousticParametersMeasurer (Python; legacy, no commit since 2021-06; Fastl & Zwicker (2007); Zwicker & Fastl formula).

Editions and who implements them

DateEditionStatusWhat changedImplemented by
2016Osses et al. (2016)publishedSignal-based model.SQAT, phonometry new, PsychoacousticMetrics.jl new, pySQAT developing, fluctuation-strength-TUe legacy
2007Fastl & Zwicker (2007)publishedClosed-form expression for amplitude- and frequency-modulated sounds.phonometry new, PsychoacousticParametersMeasurer legacy

Project map

The project map, with only the lines for fluctuation strength (Osses et al.) between the projects listed for it. Agreement between a project and the code it was ported or adapted from only checks the port.

Scroll the picture sideways.

Project map for Fluctuation strength (Osses et al.) PsychoacousticParametersMeasurer: Python py   PsychoacousticParametersMeasurer no relation recorded fluctuation-strength-TUe: MATLAB m   fluctuation-strength-TUe SQAT: MATLAB m   SQAT Author's own code: fluctuation-strength-TUe to SQAT (Alejandro Osses), for Osses et al. (2016) pySQAT: Python py   pySQAT Ported or adapted: SQAT to pySQAT, for Osses et al. (2016) phonometry: Python py   phonometry Results checked: phonometry against SQAT, for Osses et al. (2016) PsychoacousticMetrics.jl: Julia jl   PsychoacousticMetrics.jl Results checked: PsychoacousticMetrics.jl against SQAT, for Osses et al. (2016)

Implementations

ProjectEditionFunctionsValidation (as stated)Notes
SQAT
MATLAB
Osses et al. (2016)
since v1.0
FluctuationStrength_Osses2016, FluctuationStrength_Osses2016_from_wavfilestandard or paper dataAlejandro Osses's FluctuationStrength_TUe.m (TU/e, 2014–2016), taken into SQAT in 2020 and modified there by Osses since 2023.
phonometry
Python
Osses et al. (2016)
since 3.1.0
fluctuation_strengthstandard or paper data
also compared with SQAT
new
PsychoacousticMetrics.jl
Julia
Osses et al. (2016)
since 0.3.0
fluctuation_strength_ossesreference code: SQATnew
phonometry
Python
Fastl & Zwicker (2007)
closed-form expression for amplitude-modulated noise; since 3.1.0
fluctuation_strength_am_noisestandard or paper datanew
pySQAT
Python
Osses et al. (2016)FluctuationStrength_Osses2016compared with SQAT (its source)developing no licence
fluctuation-strength-TUe
MATLAB
Osses et al. (2016)
since 1.0
FluctuationStrength_TUestandard or paper datalegacy no licence
PsychoacousticParametersMeasurer
Python
Fastl & Zwicker (2007)
Zwicker & Fastl formula
acousticFluctuation, fmoddetectionnot statedlegacy no licence The header cites Zwicker & Fastl, "Psychoacoustics: Facts and Models", without naming an edition.

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: Fluctuation strength from the Sottek Hearing Model (ECMA-418-2).

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.

SQAT · Osses et al. (2016)

standard or paper data

Ported or adapted from fluctuation-strength-TUe (the author's own code).

  • Checked against amplitude- and frequency-modulation dependences from the literature.
phonometry new · Osses et al. (2016)

standard or paper data also compared with SQAT

  • Compared with the literature values in Table 1 of Osses et al. (2016): for amplitude-modulated 70 dB tones the Pearson correlation is about 0.98, within a factor of about 2.1 at every point. SQAT's FluctuationStrength_Osses2016 was consulted as a numeric reference for the shape of the sweep.
  • Validated for amplitude modulation only; a steady 1 kHz tone reads about 0.09 vacil.
PsychoacousticMetrics.jl new · Osses et al. (2016)

reference code: SQAT

  • Cross-checked against SQAT's FluctuationStrength_Osses2016, run under Octave, on identical signals: 26 cases, including all 18 points of Fastl & Zwicker's AM/FM reference grid (Osses 2018 thesis, Table B.1), each reproduced to a relative tolerance of 1e-6 (measured 3e-9).
  • The grid stimuli are synthesised following the Osses et al. (2016) validation files that SQAT's own validation reads; the tests also check that each synthetic stimulus gives the value SQAT gives on the real file (tones to 5e-3, noise to 25 % across random draws).
  • Against the published curves, 11 of the 18 points are within 30 %, and exactly those 11 are gated. The other seven are misses of the reference model itself (FM tones with a modulation frequency above 4 Hz overestimated three- to fourfold, thesis §B.4.1; the shoulder and tail points of AM tones and noise), which SQAT's own validation figures also show.
phonometry new · Fastl & Zwicker (2007)

standard or paper data

  • A conformance row checks Eq. (10.2) of Fastl & Zwicker for amplitude-modulated broadband noise.
pySQAT developing · Osses et al. (2016)

compared with SQAT (its source)

Ported or adapted from SQAT. It was compared with the code it was ported from, which checks the port only.

  • Compared with SQAT v1.3, run in MATLAB, by validation/FINAL_VAL.py; the generated reports are not committed.
fluctuation-strength-TUe legacy · Osses et al. (2016)

standard or paper data

  • demos/demo_osses2016a.m reproduces the figures of the paper with the included stimuli (AM and FM tones, AM noise and excerpts of real sounds).

Not stated by PsychoacousticParametersMeasurer.

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:

SQAT
  • Statistics such as N5 take the nearest rank of the sorted time series, without interpolation (get_exceeded_value), and leave out the first time_skip seconds of the signal.
PsychoacousticMetrics.jl new
  • Needs audio at 44.1 or 48 kHz (an error otherwise); SQAT resamples other rates itself.

References

  1. Fastl, H., & Zwicker, E. (2007). Psychoacoustics: Facts and models (3rd ed.). Springer. https://doi.org/10.1007/978-3-540-68888-4
  2. Osses Vecchi, A., García León, R., & Kohlrausch, A. (2016). Modelling the sensation of fluctuation strength. Proceedings of Meetings on Acoustics, 28, 050005. https://doi.org/10.1121/2.0000410

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