---
title: "Reverberation-time prediction (Sabine, Eyring, Arau)"
description: "Predicting a room's reverberation time from its volume, boundary areas and surface absorption with five statistical-acoustics models (Sabine, Eyring/Norris-Eyring, Millington-Sette, Fitzroy and Arau-Puchades), including the air-absorption term and the models for a non-uniform absorption distribution."
references:
  - type: book
    authors: ["Sabine, W. C."]
    year: 1922
    title: "Collected papers on acoustics"
    publisher: "Harvard University Press"
    url: "https://archive.org/details/collectedpaperso00sabi"
    note: "The original reverberation experiments and the T = 0.161 V/A law of §1. The linked copy is the free scan at the Internet Archive."
  - type: article
    authors: ["Eyring, C. F."]
    year: 1930
    title: "Reverberation time in \"dead\" rooms"
    journal: "The Journal of the Acoustical Society of America"
    volume: 1
    issue: "2A"
    pages: "217-241"
    doi: "10.1121/1.1915175"
    note: "The mean-free-path derivation behind the −S ln(1−ᾱ) term of §1."
  - type: article
    authors: ["Millington, G."]
    year: 1932
    title: "A modified formula for reverberation"
    journal: "The Journal of the Acoustical Society of America"
    volume: 4
    issue: 1
    pages: "69-82"
    doi: "10.1121/1.1915588"
    note: "The per-surface logarithmic absorption term of §1."
  - type: article
    authors: ["Fitzroy, D."]
    year: 1959
    title: "Reverberation formula which seems to be more accurate with nonuniform distribution of absorption"
    journal: "The Journal of the Acoustical Society of America"
    volume: 31
    issue: 7
    pages: "893-897"
    doi: "10.1121/1.1907814"
    note: "The axial split into three wall-pair decays of §2."
  - type: article
    authors: ["Arau-Puchades, H."]
    year: 1988
    title: "An improved reverberation formula"
    journal: "Acustica"
    volume: 65
    issue: 4
    pages: "163-180"
    url: "https://www.ingentaconnect.com/content/dav/aaua/1988/00000065/00000004/art00003"
    note: "The geometric-mean combination of §2 (its Formula 18). The linked record is the publisher page at Ingenta."
  - type: book
    authors: ["Kuttruff, H."]
    year: 2016
    title: "Room acoustics"
    edition: "6th ed."
    publisher: "CRC Press"
    doi: "10.1201/9781315372150"
    note: "The diffuse-field theory, its limits and the modern assessment of the classical formulae behind §4."
  - type: book
    authors: ["Everest, F. A."]
    year: 2001
    title: "Master handbook of acoustics"
    edition: "4th ed."
    publisher: "McGraw-Hill"
    url: "https://openlibrary.org/isbn/9780071360975"
    note: "The Fig. 7-22 worked example the conformance suite reproduces: Example 1, an untreated 23.3 × 16 × 10 ft room, whose six printed Sabine reverberation times the SI implementation reproduces to ≤ 0.02 s, reinforced by hand-computed closed-form values and the model identities (every model collapses to Eyring for uniform absorption; Eyring collapses to Sabine as the absorption tends to zero), which transitively carry that real-data anchor to the whole family. ISBN 978-0-07-136097-5."
  - type: book
    authors: ["Carrión Isbert, A."]
    year: 1998
    title: "Diseño acústico de espacios arquitectónicos"
    publisher: "Edicions UPC"
    url: "https://openlibrary.org/books/OL23159935M"
    note: "A Spanish-language textbook treatment of the reverberation models and their use in room design. ISBN 978-84-8301-252-9."
  - type: standard
    organization: "European Committee for Standardization"
    year: 2003
    title: "Building acoustics — Estimation of acoustic performance of buildings from the performance of elements — Part 6: Sound absorption in enclosed spaces"
    designation: "EN 12354-6:2003"
    url: "https://knowledge.bsigroup.com/products/building-acoustics-estimation-of-acoustic-performance-of-buildings-from-the-performance-of-elements-sound-absorption-in-enclosed-spaces"
    note: "The classical formulae predate the normative world and enter it through this standard, whose Clause 4 model is a Sabine calculation with object and air terms; see the enclosed-space absorption guide. The linked catalogue record is the BSI Knowledge page for BS EN 12354-6:2003."
  - type: standard
    organization: "International Organization for Standardization"
    year: 2003
    title: "Acoustics — Measurement of sound absorption in a reverberation room"
    designation: "ISO 354:2003"
    url: "https://www.iso.org/standard/34545.html"
    note: "Defines the measured absorption coefficient via Sabine's formula, the self-consistency argument of §4."
  - type: standard
    organization: "International Organization for Standardization"
    year: 1993
    title: "Acoustics — Attenuation of sound during propagation outdoors — Part 1: Calculation of the absorption of sound by the atmosphere"
    designation: "ISO 9613-1:1993"
    url: "https://www.iso.org/standard/17426.html"
    note: "The atmospheric-absorption coefficient behind the air term 4mV; see the outdoor propagation guide."
---

import Video from '../../../components/Video.astro';
import ThemeImage from '../../../components/ThemeImage.astro';
import ReportPreview from '../../../components/ReportPreview.astro';

The **reverberation time** $T$, the time for the sound-energy level to fall by
60 dB after the source stops, is predicted here from a room's **volume**,
**boundary areas** and the **sound-absorption coefficients** of its surfaces,
through the classical statistical-acoustics formulae. This is the design-stage
counterpart of the *measured* reverberation time of
[Room acoustics](/phonometry/guides/room-acoustics/) (ISO 3382) and complements
the EN 12354-6 model of
[Sound absorption in enclosed spaces](/phonometry/guides/enclosed-space-absorption/),
which specialises the same physics to that standard's Clause 4.

phonometry offers five models, ordered by how much they account for a
**non-uniform** absorption distribution:

| Model | Absorption term in $T = k\,V / (\text{term} + 4mV)$ | Best for |
|:---|:---|:---|
| **Sabine** | $A = \sum_i S_i\alpha_i$ | low, uniform absorption |
| **Eyring** (Norris-Eyring) | $-S\ln(1-\bar\alpha)$ | strong, uniform absorption |
| **Millington-Sette** | $-\sum_i S_i\ln(1-\alpha_i)$ | a few very absorptive surfaces |
| **Fitzroy** | area-weighted **arithmetic** mean of three axial Eyring times | anisotropic rooms |
| **Arau-Puchades** | area-weighted **geometric** mean of the same three | anisotropic rooms (author-preferred) |

with the Sabine constant $k = 24\ln 10 / c_0$ (so $k = 0.161$ for
$c_0 = 343\ \mathrm{m/s}$) and the air-absorption term $4mV$.

<ThemeImage src="https://raw.githubusercontent.com/jmrplens/phonometry/main/.github/images/reverberation_models.svg" alt="Reverberation time per octave band for a room with an absorptive floor and ceiling but hard walls, computed by five models" width="82%" loading="eager" />

<details>
<summary>Show the code for this figure</summary>

```python
import matplotlib.pyplot as plt
from phonometry import environmental, room

# A 10 x 7 x 3.5 m room: hard end walls, lightly treated side walls and a
# very absorptive floor/ceiling pair (carpet plus an acoustic ceiling).
bands = [125.0, 250.0, 500.0, 1000.0, 2000.0, 4000.0]
alpha_x = [0.06, 0.07, 0.08, 0.09, 0.10, 0.10]
alpha_y = [0.12, 0.14, 0.16, 0.18, 0.20, 0.20]
alpha_z = [0.30, 0.50, 0.65, 0.78, 0.82, 0.80]
m = environmental.air_attenuation_m(bands, 20.0, 50.0)   # air at 20 C / 50 % RH
res = room.reverberation_time_models((10.0, 7.0, 3.5),
                                     (alpha_x, alpha_y, alpha_z),
                                     air_attenuation=m, frequencies=bands)
res.plot()   # the five model curves per band
plt.show()
```

</details>

## 1. Sabine, Eyring and Millington-Sette

The three statistical models take the room volume and a list of
`(area, absorption_coefficient)` surfaces. **Sabine** is exact only for low,
uniform absorption; **Eyring** replaces the absorption area by
$-S\ln(1-\bar\alpha)$ and is correct where Sabine overestimates $T$;
**Millington-Sette** sums the Eyring term surface by surface, so a single
perfectly absorbing surface drives $T$ to zero.

$$
T_{\text{Sab}} = \frac{k V}{\sum_i S_i\alpha_i}, \qquad
T_{\text{Eyr}} = \frac{k V}{-S\ln(1-\bar\alpha)}, \qquad
T_{\text{Mil}} = \frac{k V}{-\sum_i S_i\ln(1-\alpha_i)}.
$$

```python
from phonometry import room

# A shoebox 8 x 5 x 3 m (V = 120 m3, S = 158 m2), uniform alpha = 0.2.
surfaces = [(40.0, 0.2), (40.0, 0.2), (24.0, 0.2),
            (24.0, 0.2), (15.0, 0.2), (15.0, 0.2)]
print(round(room.sabine_reverberation_time(120.0, surfaces), 3))            # 0.612 s
print(round(room.eyring_reverberation_time(120.0, surfaces), 3))            # 0.548 s
print(round(room.millington_sette_reverberation_time(120.0, surfaces), 3))  # 0.548 s
```

For a **uniform** distribution Eyring and Millington-Sette coincide, and both
fall below Sabine; Sabine's over-estimate at high absorption is the reason
Eyring exists. As $\alpha \to 0$, Eyring reduces to Sabine. Air absorption
enters every model through the power-attenuation coefficient $m$ (in neper per
metre, from the ISO 9613-1
[atmospheric absorption](/phonometry/guides/outdoor-propagation/)):

```python
from phonometry import environmental, room

m = environmental.air_attenuation_m(2000.0, temperature=20.0, relative_humidity=50.0)
surfaces = [(40.0, 0.3), (40.0, 0.3), (24.0, 0.3),
            (24.0, 0.3), (15.0, 0.3), (15.0, 0.3)]
print(round(room.eyring_reverberation_time(120.0, surfaces, air_attenuation=m), 3))
```

Every statistical model also assumes a **diffuse field**, and low
frequencies break that assumption first: below the Schroeder frequency the
room responds as a set of discrete modes, not as a reverberant mixture. The
2D FDTD simulation below drives a rigid 5 m by 3.5 m room exactly on its
(2,1) mode and then between two modes; the standing-wave pattern that
builds up on resonance is what Sabine and Eyring cannot see.

<Video
  name="anim_fdtd_room_modes"
  width={2400}
  height={1350}
  title="On-mode versus off-mode drive in a rigid room (2D FDTD)"
  description="A 2D FDTD simulation of a rigid 5 by 3.5 metre room driven at the 84 Hz (2,1) mode and at an off-mode frequency side by side. On resonance a standing-wave pattern with fixed nodal lines grows until it dominates the RMS pressure map; off resonance the forced response stays weak and never organises into that nodal structure."
/>

## 2. Fitzroy and Arau-Puchades (anisotropic rooms)

When the absorption is concentrated on one axis (a carpeted floor and an
acoustic ceiling against otherwise hard walls), a single mean $\bar\alpha$
misrepresents the field. **Fitzroy** and **Arau-Puchades** split a rectangular
(shoebox) room into the three pairs of opposing walls and combine the *axial*
Eyring reverberation times $T_i$ (each using the whole surface $S$ and the mean
absorption $\bar\alpha_i$ of the wall pair perpendicular to axis $i$):

$$
T_{\text{Fitz}} = \sum_i \frac{S_i}{S}\,T_i \quad(\text{arithmetic}), \qquad
T_{\text{Arau}} = \prod_i T_i^{\,S_i/S} \quad(\text{geometric}).
$$

```python
from phonometry import room

# 8 x 5 x 3 m room, absorptive x-wall pair (alpha 0.5), hard elsewhere (0.1).
dims = (8.0, 5.0, 3.0)
absorption = (0.5, 0.1, 0.1)   # mean alpha of the (x, y, z) wall pairs
print(round(room.arau_puchades_reverberation_time(dims, absorption), 3))  # 0.812 s
print(round(room.fitzroy_reverberation_time(dims, absorption), 3))        # 0.974 s
```

By the arithmetic-geometric-mean inequality the Arau-Puchades time never exceeds
the Fitzroy time; Fitzroy is known to over-predict when one wall pair is very
reflective, which is why Arau-Puchades recommends the geometric mean. Both
reduce exactly to Eyring for a uniform absorption distribution.

## 3. Comparing the five models per band

`reverberation_time_models` builds the six boundary surfaces of a rectangular
room from its dimensions and the three wall-pair mean absorptions, then
evaluates all five models on a common footing and returns a
`ReverberationModelResult` whose `.plot()` draws the figure above.

```python
from phonometry import room

# 10 x 7 x 3.5 m room, absorptive floor/ceiling against harder walls.
res = room.reverberation_time_models(
    (10.0, 7.0, 3.5),
    (
        [0.06, 0.07, 0.08, 0.09, 0.10, 0.10],   # x-pair: hard end walls
        [0.12, 0.14, 0.16, 0.18, 0.20, 0.20],   # y-pair: lightly treated walls
        [0.30, 0.50, 0.65, 0.78, 0.82, 0.80],   # z-pair: carpet + acoustic ceiling
    ),
    frequencies=[125.0, 250.0, 500.0, 1000.0, 2000.0, 4000.0],
)
print(res.sabine.round(2))         # [0.74 0.47 0.37 0.31 0.3  0.3 ]
print(res.arau_puchades.round(2))  # [0.79 0.51 0.38 0.29 0.26 0.27]
print(res.fitzroy.round(2))        # [1.02 0.79 0.66 0.57 0.51 0.51]
```

<details>
<summary>Show the code for this figure</summary>

```python
import matplotlib.pyplot as plt
from phonometry import environmental, room

m = environmental.air_attenuation_m([125.0, 250.0, 500.0, 1000.0, 2000.0, 4000.0], 20.0, 50.0)
room.reverberation_time_models(
    (10.0, 7.0, 3.5),
    (
        [0.06, 0.07, 0.08, 0.09, 0.10, 0.10],
        [0.12, 0.14, 0.16, 0.18, 0.20, 0.20],
        [0.30, 0.50, 0.65, 0.78, 0.82, 0.80],
    ),
    air_attenuation=m,
    frequencies=[125.0, 250.0, 500.0, 1000.0, 2000.0, 4000.0],
).plot()
plt.show()
```

</details>

## 4. Choosing a model, and when every model fails

The five formulae are not rivals on a single axis of accuracy; each has a
domain of validity:

- **Sabine** is the tool for live rooms with low, reasonably even
  absorption (mean $\bar\alpha$ up to roughly 0.2): classrooms, halls,
  reverberation chambers. It is also the convention wired into measurement
  practice, because the ISO 354 absorption coefficient is *defined* through
  Sabine's formula, so feeding reverberation-room data back into Sabine is
  self-consistent even where the formula is strained. Its structural defect
  shows at high absorption: with $\alpha = 1$ on every surface (an opening
  in every direction) it still predicts a finite reverberation time.
- **Eyring** is the choice for evenly treated rooms with substantial
  absorption: studios, treated offices, listening rooms. It reaches
  $T = 0$ for total absorption, and its correction over Sabine grows with
  $\bar\alpha$ (about 10 % shorter at $\bar\alpha = 0.2$, 30 % at 0.5).
- **Millington-Sette** handles a mix of very absorptive and hard surfaces
  better than a single mean, but it is meant for measured, sub-unity
  coefficients: a single surface with $\alpha_i = 1$ drives the whole
  prediction to zero. Reverberation-room coefficients at or above 1.0 (a
  documented ISO 354 outcome, see the absorption section of
  [Room Acoustics](/phonometry/guides/room-acoustics/)) lie outside the
  domain of the logarithmic term, so phonometry enforces each formula's
  own domain: Sabine accepts such coefficients as supplied (its linear
  $A = \sum_i S_i\alpha_i$ stays finite); Eyring accepts them as long as
  the mean entering $\ln(1-\bar\alpha)$ stays below 1 (Fitzroy and
  Arau-Puchades take the wall-pair means themselves as inputs, so each
  must already be below 1); Millington-Sette rejects any coefficient at
  or above 1. To use Millington anyway, bringing such a
  coefficient into $[0, 1)$ is a modelling decision the formula does not
  prescribe: whatever adjustment you choose (limiting just below 1 is
  common), record it alongside the prediction.
- **Fitzroy** and **Arau-Puchades** target shoebox rooms whose absorption
  is concentrated on one axis, the typical office or dwelling with a soft
  floor and ceiling between hard walls. Arau's geometric mean tempers
  Fitzroy's known over-prediction when one wall pair is very reflective.

**When every formula fails.** All five inherit the same assumption: a
diffuse field, with sound arriving equally from all directions at every
point, that stays diffuse while it decays. The common breakages:

- **Below the Schroeder frequency** the band holds a handful of discrete
  modes (the animation in §1) and a statistical reverberation time is not
  defined at all; each mode decays at its own rate set by the wall
  impedances it actually touches.
- **Coupled volumes** (a hall with an open stage house, two rooms through a
  doorway) produce double-slope decays; no single $T$ exists, and the
  measured T20 and T30 disagree (the curvature diagnostic of
  [Room Acoustics](/phonometry/guides/room-acoustics/)).
- **Disproportionate rooms** (corridors, low flat halls) with the
  absorption on one surface pair keep a grazing sound field parallel to the
  hard surfaces that the absorber barely touches; the measured time can be
  up to twice any statistical prediction, the practical experience recorded
  in EN 12354-6 (see
  [Sound absorption in enclosed spaces](/phonometry/guides/enclosed-space-absorption/)).
- **Focusing geometries** (domes, curved rear walls) concentrate late
  energy instead of mixing it, producing position-dependent decays no
  single-number formula can represent.

Scattering objects restore the mixing the models assume: a furnished room
follows the statistical prediction distinctly better than the same room
bare, beyond what the furniture's own absorption area accounts for. In
practice, quote a *band* of predictions (Sabine and Eyring, or Fitzroy and
Arau-Puchades for axial cases) rather than a single value; where the models
spread, the room is telling you its field is not diffuse.

## 5. Prediction report (`.report()`)

`ReverberationModelResult.report(path)` renders a one-page PDF fiche of the
prediction: a basis line marking it a **design-stage prediction** by the five
statistical-acoustics models, an optional metadata header block (client, room,
description, room volume, total surface area, climate), a per-band table with
one reverberation-time column per model beside the model comparison plot
(`.plot()`), and the boxed mid-frequency reverberation time from Arau-Puchades
(the recommended model for a non-uniform absorption distribution) with the
per-model spread alongside. It is a prediction, not a measurement: the five
models bracket the reverberation time likely to occur, so no PASS/FAIL verdict
is emitted. A target reverberation time supplied through the metadata's
`requirement` field is printed as a reference line only, since a room
reverberation time is a target range rather than a strictly
higher/lower-is-better quantity. It uses the same `ReportMetadata` container and
rendering engine as the other fiches; passing `metadata=None` produces a bare
prediction fiche. Rendering needs reportlab (`pip install phonometry[report]`);
only `engine="reportlab"` is supported. The fiche renders in English by default;
pass `language="es"` for a Spanish fiche (translated fixed strings and a comma
decimal separator).

```python
from phonometry import reverberation_time_models, ReportMetadata

result = reverberation_time_models(
    (8.0, 5.0, 3.0),                       # a shoebox room, one treated wall pair
    ([0.10, 0.15, 0.30, 0.45, 0.55, 0.60], # treated wall pair, per octave band
     [0.08, 0.10, 0.12, 0.15, 0.18, 0.20], # side walls
     [0.05, 0.08, 0.10, 0.12, 0.15, 0.18]),# floor/ceiling
    frequencies=[125.0, 250.0, 500.0, 1000.0, 2000.0, 4000.0],
)
result.report(
    "reverberation_fiche.pdf",
    metadata=ReportMetadata(
        specimen="Classroom, one wall lined with a broadband absorber",
        test_room="Classroom C1",
        temperature=20.0, relative_humidity=50.0,
        laboratory="Phonometry Reference Laboratory",
        requirement=0.8,          # printed as a target reference line, no verdict
    ),
)                                 # the five-model table + the boxed T_mid
```

The example fiche is regenerated with `make reports` and kept rendered in the
repository; click the preview to open the PDF.

<ReportPreview
	name="reverberation_prediction_example"
	title="Reverberation-time prediction example report (PDF)"
	description="One-page reverberation-time prediction fiche: a metadata header (client, room, description, room volume, total surface area, temperature, humidity and pressure), the octave-band table with one reverberation-time column per model (Sabine, Eyring, Millington-Sette, Fitzroy and Arau-Puchades from 125 Hz to 4 kHz) beside the five-model comparison plot, the boxed mid-frequency reverberation time from Arau-Puchades with the per-model spread alongside, and a target reverberation-time reference line (no PASS/FAIL verdict)."
	caption="Reverberation-time prediction fiche (ReverberationModelResult.report), the five-model table and the boxed T_mid."
/>

## See also

- API reference: [`room.reverberation_prediction`](/phonometry/reference/api/rooms/reverberation-prediction/) and [`environmental.air_absorption`](/phonometry/reference/api/environment/air-absorption/).
