# Roughness, Daniel & Weber model

> 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/roughness-daniel-weber.html

**Quantity:** Roughness · **Unit:** asper · **Also known as:** Daniel and Weber roughness, Daniel & Weber 1997, Aures roughness, asper

Roughness from the model of Daniel & Weber (1997), an optimised version of Aures's (1985) model. It is not standardised, and the paper leaves details open (filter bank, calibration, framing), so implementations can give different values for the same signal.

There is no standard; the reference model is Daniel & Weber (1997). Open-source implementations of it: **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (MATLAB), **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (Python), [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html) (MATLAB), [ITA-Toolbox](https://zhenxianli.github.io/LISQM/projects/ita-toolbox.html) (MATLAB), [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html) (C, Python; newly released, not yet seen to be widely used), [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html) (C#; newly released, not yet seen to be widely used), [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html) (Julia; newly released, not yet seen to be widely used), [SoundPalette](https://zhenxianli.github.io/LISQM/projects/soundpalette.html) (C++; newly released, not yet seen to be widely used), [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) (Python; developing), and [PsySound3](https://zhenxianli.github.io/LISQM/projects/psysound3.html) (MATLAB; legacy, no commit since 2015-03).

SQAT rewrote its implementation in September 2026 (PR #65, released in v2.0). It builds on Alejandro Osses's code and was corrected against revised code that Dik Hermes provided in 2025, which changes results compared with SQAT v1.3 and earlier.

## Editions and who implements them

| Date | Edition | Status | What changed | Implemented by |
|---|---|---|---|---|
| 1997 | [Daniel & Weber (1997)](https://zhenxianli.github.io/LISQM/standards.html#ref-daniel-weber-1997) | published | Reference model. | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**, [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html), [ITA-Toolbox](https://zhenxianli.github.io/LISQM/projects/ita-toolbox.html), [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html), [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html), [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html), [SoundPalette](https://zhenxianli.github.io/LISQM/projects/soundpalette.html), [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html), [PsySound3](https://zhenxianli.github.io/LISQM/projects/psysound3.html) |
| 1985 | [Aures (1985a)](https://zhenxianli.github.io/LISQM/standards.html#ref-aures-1985-roughness) | published | Earlier model that Daniel & Weber optimised. | — |

## Project map

The lines of the project map for roughness (Daniel & Weber) 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 [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html): **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (Daniel & Weber (1997))
- From **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**: [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html) (Daniel & Weber (1997)); [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) (Daniel & Weber (1997))
- From **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**: [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html) (Daniel & Weber (1997)); [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html) (Daniel & Weber (1997)); [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html) (Daniel & Weber (1997))

### The author's own code

- From [PsySound3](https://zhenxianli.github.io/LISQM/projects/psysound3.html) (Densil Cabrera): [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html) (Daniel & Weber (1997))

### Used at run time

- [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) calls **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (Daniel & Weber (1997))
- [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) calls **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (Daniel & Weber (1997))
- [PsychoBox](https://zhenxianli.github.io/LISQM/projects/psychobox.html) calls **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (Daniel & Weber (1997))
- [Soundscapy](https://zhenxianli.github.io/LISQM/projects/soundscapy.html) calls **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (Daniel & Weber (1997))

### Results checked against another project

- [SoundPalette](https://zhenxianli.github.io/LISQM/projects/soundpalette.html) against **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (Daniel & Weber (1997))

On the map without a line, as no relation to another project listed for roughness (Daniel & Weber) is recorded for them: [ITA-Toolbox](https://zhenxianli.github.io/LISQM/projects/ita-toolbox.html).

## Implementations

| Project | Language | Edition | Functions | Validation (as stated) | Notes |
|---|---|---|---|---|---|
| **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** | MATLAB | [Daniel & Weber (1997)](https://zhenxianli.github.io/LISQM/standards.html#ref-daniel-weber-1997) (since v1.0) | `Roughness_Daniel1997`, `Roughness_Daniel1997_from_wavfile` | standard or paper data | The v1.x code is AARAE's `roughnessDW.m` (Dik Hermes's code), adapted and verified for SQAT in 2023. v2.0 rewrites it (PR #65, 2026-09-08) with corrections from revised code that Dik Hermes sent to the SQAT team in 2025: 63 of 119 validation values go up and 56 down (largest change 0.155 asper). |
| **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** | Python | [Daniel & Weber (1997)](https://zhenxianli.github.io/LISQM/standards.html#ref-daniel-weber-1997) (since 1.0.0) | `roughness_dw`, `roughness_dw_freq` | standard or paper data (outcome not stated) | — |
| [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html) | MATLAB | [Daniel & Weber (1997)](https://zhenxianli.github.io/LISQM/standards.html#ref-daniel-weber-1997) | `RoughnessDW` | not stated | Ported from PsySound3's `@RoughnessDW` by Ella Manor and Densil Cabrera (2015). |
| [ITA-Toolbox](https://zhenxianli.github.io/LISQM/projects/ita-toolbox.html) | MATLAB | [Daniel & Weber (1997)](https://zhenxianli.github.io/LISQM/standards.html#ref-daniel-weber-1997) | `ita_roughness_daniel` | standard or paper data (a code comment only) | Uses sub-functions written by Martin Klemenz in 2000 (`external_packages/roughness_daniel`). |
| [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html) | C, Python | [Daniel & Weber (1997)](https://zhenxianli.github.io/LISQM/standards.html#ref-daniel-weber-1997) (since 0.1.0) | `roughness_daniel_weber` | compared with SQAT (its source) | Newly released project, not yet seen to be widely used. Follows SQAT revision `e6228b78`, which includes SQAT's September 2026 rewrite but not its later fix to the Terhardt filter bank (PR #77, in SQAT v2.0). |
| [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html) | C# | [Daniel & Weber (1997)](https://zhenxianli.github.io/LISQM/standards.html#ref-daniel-weber-1997) | `Sq.RoughnessDw`, `Sq.RoughnessDwFreq` | compared with MoSQITo (its source) | Newly released project, not yet seen to be widely used. |
| [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html) | Julia | [Daniel & Weber (1997)](https://zhenxianli.github.io/LISQM/standards.html#ref-daniel-weber-1997) (since 0.2.0) | `roughness_dw` | standard or paper data; also compared with MoSQITo (its source) | Newly released project, not yet seen to be widely used. |
| [SoundPalette](https://zhenxianli.github.io/LISQM/projects/soundpalette.html) | C++ | [Daniel & Weber (1997)](https://zhenxianli.github.io/LISQM/standards.html#ref-daniel-weber-1997) (since v0.5.0) | `sp::compute_psycho` | compared with MoSQITo | Newly released project, not yet seen to be widely used. A source-available licence, not an open-source one: some uses are not allowed. |
| [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) | Python | [Daniel & Weber (1997)](https://zhenxianli.github.io/LISQM/standards.html#ref-daniel-weber-1997) | `Roughness_Daniel1997` | compared with SQAT (its source) | Developing project: no publication or documented use by others. No licence file: by default, copying, changing or sharing the code needs the author's permission. Follows SQAT v1.3, before SQAT's September 2026 rewrite. |
| [PsySound3](https://zhenxianli.github.io/LISQM/projects/psysound3.html) | MATLAB | [Daniel & Weber (1997)](https://zhenxianli.github.io/LISQM/standards.html#ref-daniel-weber-1997) | `@RoughnessDW` | not stated | Legacy project, no longer maintained. No licence file: by default, copying, changing or sharing the code needs the author's permission. Adapted for PsySound3 by Matt Flax (2006), with changes by Farhan Rizwi (2007). AARAE's `RoughnessDW.m` is a port of this analyser. |

Also available through tools that call one of these implementations: [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) (via MoSQITo, Daniel & Weber (1997)), [PsychoBox](https://zhenxianli.github.io/LISQM/projects/psychobox.html) (via MoSQITo, Daniel & Weber (1997)), and [Soundscapy](https://zhenxianli.github.io/LISQM/projects/soundscapy.html) (via MoSQITo, Daniel & Weber (1997)).

**See also:** [Roughness from the Sottek Hearing Model (ECMA-418-2)](https://zhenxianli.github.io/LISQM/metrics/roughness-ecma-418-2.html)

## 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.

- **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, Daniel & Weber (1997): standard or paper data
  - Ported or adapted from [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html).
  - Checked against amplitude- and frequency-modulation dependences from the literature.
- **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**, Daniel & Weber (1997): standard or paper data (outcome not stated)
  - The documentation marks it as validated against reference data.
- [AARAE](https://zhenxianli.github.io/LISQM/projects/aarae.html), Daniel & Weber (1997): not stated
  - Ported or adapted from [PsySound3](https://zhenxianli.github.io/LISQM/projects/psysound3.html) (the author's own code).
- [ITA-Toolbox](https://zhenxianli.github.io/LISQM/projects/ita-toolbox.html), Daniel & Weber (1997): standard or paper data (a code comment only)
  - A code comment says that after major bug fixes the values "more or less match those of the paper by Daniel"; no test or comparison script is included.
- [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html), Daniel & Weber (1997): compared with **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (its source)
  - Ported or adapted from **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** and **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**. It was compared with the code it was ported from, which checks the port only.
  - The project says that detailed validation and reference comparisons are kept outside the repository; the results are not published.
  - The API documentation calls the function experimental and says normative validation remains open.
- [Mosqito.NET](https://zhenxianli.github.io/LISQM/projects/mosqito-net.html), Daniel & Weber (1997): compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (its source)
  - Ported or adapted from **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**. 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.
- [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html), Daniel & Weber (1997): standard or paper data; also compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)** (its source)
  - Ported or adapted from **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**. It was compared with the code it was ported from, which checks the port only.
  - Tested against the Zwicker & Fastl reference curves on MoSQITo's validation grid (7 carrier × 11 modulation frequencies) within ±0.1 asper, and cross-checked against MoSQITo's `roughness_dw` on identical signals.
  - Five points at a 2 kHz carrier miss the ±0.1 asper gate. MoSQITo misses them by the same amount (and overshoots Daniel & Weber's own curve there by 15–31 %), so these five are checked for agreement with MoSQITo to 5e-3 asper instead.
  - Against the Daniel & Weber curves themselves, 63 of the 77 grid points are within 30 % of the reference (reported, not gated).
- [SoundPalette](https://zhenxianli.github.io/LISQM/projects/soundpalette.html), Daniel & Weber (1997): compared with **[MoSQITo](https://zhenxianli.github.io/LISQM/projects/mosqito.html)**
  - Compared with MoSQITo 1.2.1 with a wider tolerance (±15 %); the README notes that published Daniel & Weber implementations differ by about 10–20 %.
- [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) (via MoSQITo), Daniel & Weber (1997) (through MoSQITo's roughness_dw): own tests only
  - Tests, which run only where MoSQITo is installed (the project's continuous integration does not install it), check that the wrapper returns what a direct call of MoSQITo gives.
- [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html) (via SQAT), Daniel & Weber (1997) (through SQAT v2.0's Roughness_Daniel1997 in MATLAB): own tests only
  - Tests with a stub engine check the call passed to SQAT and the conversion of its output; the comparison with a direct SQAT call runs only where MATLAB and SQAT v2.0 are installed.
- [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html), Daniel & Weber (1997): compared with **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (its source)
  - Ported or adapted from **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**. 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.

Not stated by PsySound3, PsychoBox, and Soundscapy.

## Before you compare numbers

Implementations of the same metric can give different numbers without either being wrong. Check these choices first.

- **Frames.** The model works on 200 ms frames. Implementations differ in the hop between frames and in whether the last complete frame is reported, which changes time series and their percentiles.
- **Code lineage.** SQAT's code (after Dik Hermes) and MoSQITo's differ in details, and ports follow one or the other; PsychoacousticMetrics.jl, which follows MoSQITo, says the two place the weighting g(z_i) differently.
- **Version.** SQAT rewrote its roughness in v2.0 (September 2026), so SQAT v1.3 and earlier, v2.0 and code ported from either give different values.

What the projects state:

- **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**: 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.
- [MetaSona](https://zhenxianli.github.io/LISQM/projects/metasona.html): Expects calibrated sound pressure in pascals. The C functions require 48 kHz input; the Python interface resamples other rates to 48 kHz (SciPy `resample_poly`). `time_skip_s` (default 0 s) leaves out the start of the signal from the reported frames; the computation still runs over the whole signal. Time-varying results include every complete frame, labelled at frame centres, which differs from SQAT's handling of the last frame and of time stamps.
- [rota-order](https://zhenxianli.github.io/LISQM/projects/rota-order.html): The method `vs_rpm` of a wrapper's result bins it along rpm after leaving out the start of the signal: by default it takes in each speed bin the 95th percentile of the loudness (N5), the median of the sharpness and the 90th percentile of the roughness, after 0.6 s for loudness and sharpness and 1.5 s for roughness. Keyword arguments override these choices. Input in any unit is turned into sound pressure in Pa by an explicit calibration factor and resampled to 48 kHz.

## References

1. Aures, W. (1985). Ein Berechnungsverfahren der Rauhigkeit [A procedure for calculating auditory roughness]. *Acustica*, 58, 268–281.
2. Daniel, P., & Weber, R. (1997). Psychoacoustical roughness: Implementation of an optimized model. *Acta Acustica united with Acustica*, 83(1), 113–123.
