Skip to content
This documentation describes version 4.0.0, which is not released yet. The current version on PyPI is 3.3.0 and does not carry everything described here.

Stage support and uncertainty (ISO 3382-1)

Standards: ISO 3382Key references: Gade 1989Davy 1980

Every other page about ISO 3382-1 measures what a listener hears. This one covers the two things the standard says about the measurement itself: what a musician on the platform hears of their own instrument, and how much of a measured reverberation time belongs to the room rather than to the noise the room was excited with.

Four panels, one per measure. G, sound strength: an omnidirectional source with concentric dashed rings around it and a microphone 10 m away in a free field, with the note that a distance d of at least 3 m may be used instead and corrected by twenty times the logarithm of d over ten, and that the free-field measurement is averaged around the source every 12.5 degrees. J LF and L J, lateral energy: the source at the left, the direct sound dashed across to a microphone position, and beside the omnidirectional capsule a figure-of-eight pattern drawn as two lobes with its null pointing back along the direct sound. IACC, interaural correlation: a head seen from above on a stand over hatched floor with a microphone at each ear canal, dimensioned 1.2 m above the floor. ST, support on the platform: a stage platform with an omnidirectional source and a microphone 1.0 m apart, an arrow saying that anything else reflecting must be more than 2 m away, and the two integration windows, the direct sound from 0 to 10 ms with the floor reflection included and the reflected sound from 20 to 100 ms for early support and from 100 ms on for late. Underneath, a note that one impulse response gives the reverberation time while these four give what the room does to a listener, each with its own setup.Four panels, one per measure. G, sound strength: an omnidirectional source with concentric dashed rings around it and a microphone 10 m away in a free field, with the note that a distance d of at least 3 m may be used instead and corrected by twenty times the logarithm of d over ten, and that the free-field measurement is averaged around the source every 12.5 degrees. J LF and L J, lateral energy: the source at the left, the direct sound dashed across to a microphone position, and beside the omnidirectional capsule a figure-of-eight pattern drawn as two lobes with its null pointing back along the direct sound. IACC, interaural correlation: a head seen from above on a stand over hatched floor with a microphone at each ear canal, dimensioned 1.2 m above the floor. ST, support on the platform: a stage platform with an omnidirectional source and a microphone 1.0 m apart, an arrow saying that anything else reflecting must be more than 2 m away, and the two integration windows, the direct sound from 0 to 10 ms with the floor reflection included and the reflected sound from 20 to 100 ms for early support and from 100 ms on for late. Underneath, a note that one impulse response gives the reverberation time while these four give what the room does to a listener, each with its own setup.

The fourth cell is this page: on the platform the microphone sits a metre from the source, and everything else reflecting has to be further than two.

A musician a metre from their own instrument hears the direct sound and, some milliseconds later, whatever the platform and the enclosure send back. Annex C makes that a ratio, measured with the source and the microphone 1,0 m apart at the same height, with nothing reflecting within 2 m:

Early support relates to ensemble, the ease of hearing the other players; late support to how much of the hall comes back. Both divide by the same direct sound, so their difference is a property of the hall and does not move with how loudly the instrument was played.

Three panels. Left: the energy envelope of a platform impulse response on a logarithmic time axis, with the direct window from 0 to 10 ms, the early window from 20 to 100 ms and the late window from 100 to 1 000 ms shaded, leaving visible gaps between 10 and 20 ms and after one second. Middle: both stage supports band by band for a platform with 1.9 seconds of decay, over the shaded typical ranges of Table C.1. Right: the standard deviation of a two-second reverberation time as a percentage of it, falling with the number of independent positions, for the 125 Hz and 1 kHz octave bands, against the 5 per cent just-noticeable differenceThree panels. Left: the energy envelope of a platform impulse response on a logarithmic time axis, with the direct window from 0 to 10 ms, the early window from 20 to 100 ms and the late window from 100 to 1 000 ms shaded, leaving visible gaps between 10 and 20 ms and after one second. Middle: both stage supports band by band for a platform with 1.9 seconds of decay, over the shaded typical ranges of Table C.1. Right: the standard deviation of a two-second reverberation time as a percentage of it, falling with the number of independent positions, for the 125 Hz and 1 kHz octave bands, against the 5 per cent just-noticeable difference

The three windows, the two supports, and what the excitation costs.

import numpy as np
from phonometry import room
fs = 48000
# A unit direct arrival, one reflection in the early window and one in the
# late one: each support is then 20 lg of that reflection's amplitude.
response = np.zeros(round(2.0 * fs))
response[100] = 1.0
response[100 + round(0.050 * fs)] = 0.2
response[100 + round(0.400 * fs)] = 0.1
result = room.stage_support(response, fs, limits=None)
print(result.early.round(4)) # [-13.9794] = 20 lg 0.2
print(result.late.round(4)) # [-20.] = 20 lg 0.1
result.plot() # both supports against the Table C.1 ranges

Table C.1 gives the typical ranges as −24 dB to −8 dB for the early support and −24 dB to −10 dB for the late one, and prints “Not known” for both just-noticeable differences, so this module has none. C.2.4 asks for the 250 Hz to 2 kHz octave bands, which is what limits defaults to, and puts the standard deviation of one band in one position at 1 dB and of the frequency- and position-averaged single number at 0,3 dB. That pair closes: 1 dB over the root of four bands in three positions is 0,2887 dB, which rounds to the printed figure, and it holds for exactly those twelve readings.

2. Two integration limits that are in the equations and not in the prose

Section titled “2. Two integration limits that are in the equations and not in the prose”

The left-hand panel above shows two gaps, and neither is described by the sentence beside the equation that makes it.

C.2.1 calls the early support “the reflected energy within the first 0,1 s”, but Equation (C.1) starts at 20 ms, not at the 10 ms where the direct window ends. The interval between them counts for nothing, and taking the prose at its word instead adds 17 % more energy in a 2 s hall, worth 0,68 dB against the 1 dB standard deviation C.2.4 estimates for a single reading.

C.2.2 calls the late support “the reflected energy after the first 0,1 s” with no upper bound at all, but Equation (C.2) stops at one second. That one costs 0,01 dB at s, where the decay is already 30 dB down by then, and grows to 1,0 dB at s: it separates cathedrals, not concert halls.

The equations govern, and the errata register records both.

import numpy as np
from phonometry import room
fs = 48000
response = np.zeros(round(2.0 * fs))
response[100] = 1.0
response[100 + round(0.050 * fs)] = 0.2
response[100 + round(0.400 * fs)] = 0.1
# An arrival in the 10 ms to 20 ms gap, and one past the one-second ceiling.
neither = response.copy()
neither[100 + round(0.015 * fs)] = 5.0
neither[100 + round(1.500 * fs)] = 5.0
plain = room.stage_support(response, fs, limits=None)
loud = room.stage_support(neither, fs, limits=None)
print(np.allclose(plain.early, loud.early)) # True
print(np.allclose(plain.late, loud.late)) # True

A reverberation time measured with interrupted noise is a measurement of a random process, and Clause 7.1 says how much of the answer that randomness owns:

with the filter bandwidth, the decays measured in each position and the independent positions, meaning source and receiver combinations rather than receivers alone.

from phonometry import room
# The 1 kHz octave: the clause puts B at 0,71 times the mid-band frequency.
print(room.filter_bandwidth(1000.0)) # 710.0 Hz
print(room.filter_bandwidth(1000.0, 3)) # 230.0 Hz
sigma = room.reverberation_time_standard_deviation(2.0, 710.0, positions=12)
print(round(float(sigma), 6)) # 0.009044 s
print(round(100.0 * float(sigma) / 2.0, 3)) # 0.452 %

Two things fall out of the printed form that are worth knowing before planning a survey.

It grows as the square root of the decay time. The in the prefactor and the under the radical leave half a power between them, so a long reverberation time carries a larger absolute uncertainty and a smaller relative one. Four times the decay time is twice the standard deviation, not four times it.

The integrated impulse response is not free of it. Clause 7.2 says the method behaves like an average of ten interrupted-noise decays per position, not like the infinity the theory gives, and that is what decays defaults to. The difference is 7 % on and 9 % on , which is not a rounding.

from phonometry import room
ten = room.reverberation_time_standard_deviation(2.0, 710.0, decays=10)
many = room.reverberation_time_standard_deviation(2.0, 710.0, decays=10**9)
print(round(float(ten) / float(many), 4)) # 1.0733

The two coefficient pairs are not arbitrary. ISO 3382-2:2008 prints the same result in general form, , with a table of and against the evaluation range and against . The 88 % with and the 55 % with are its 20 dB and 30 dB rows in the column, an assumption ISO 3382-1 does not print.

4. Where a short decay stops being measurable

Section titled “4. Where a short decay stops being measurable”

Clause 7.3 puts two lower limits on a decay time measured by traditional forward analysis, and both are normative:

The first is the filter’s own: a band of width cannot resolve a decay faster than its impulse response. The second is the averaging detector’s, and it drops out when there is no detector, which is the case for the backward integration of 5.3.3.

from phonometry import room
print(round(float(room.minimum_reliable_reverberation_time(88.75)), 4)) # 0.1803 s
print(round(float(room.minimum_reliable_reverberation_time(2840.0)), 4)) # 0.0056 s
print(room.minimum_reliable_reverberation_time(710.0, 0.05)) # 0.1 s

The 125 Hz octave binds hardest, because it is the narrowest: 16 over 88,75 Hz is 180 ms, and that is a bound the decay has to clear rather than one it may equal, so a room at or below 180 ms cannot have its 125 Hz reverberation time measured by forward analysis at all. ISO 3382-2:2008, 7.3 NOTE relaxes the product to B T > 4 when the filtering is time-reversed, which is what room_parameters does with zero_phase=True.

  • Covered

    The stage support of ISO 3382-1:2009, Annex C: Equations (C.1) and (C.2) with their printed integration limits, the Table C.1 typical ranges, and the two standard deviations C.2.4 estimates. And Clause 7: the standard deviation of a measured reverberation time from Equations (4) and (5), the two printed filter bandwidths, the ten decays Clause 7.2 values an integrated impulse response at, and the lower limits of Equations (6) and (7).

  • Not covered yet

    The measurement plan itself: the source directivity limits of Table 1 with the gliding average that qualifies a source against them, the minimum receiver counts of Table A.2, and the reporting contract of Clause 9.2.

  • Davy, J. L. (1980). The variance of impulse decays. Acustica, 44(1), 51-56. One of the two references Clause 7.1 derives its coefficients from.
  • Gade, A. C. (1989). Investigations of musicians' room acoustic conditions in concert halls. II: Field experiments and synthesis of results. Acustica, 69(6), 249-262. The field work the stage support of Annex C comes from, and the source-receiver geometry it fixes.
  • International Organization for Standardization. (2008). Acoustics — Measurement of room acoustic parameters — Part 2: Reverberation time in ordinary rooms (ISO 3382-2:2008). Its Equation (A.4) and Table A.1 are the general form the two coefficients of ISO 3382-1 Clause 7 are one column of.
  • International Organization for Standardization. (2009). Acoustics — Measurement of room acoustic parameters — Part 1: Performance spaces (ISO 3382-1:2009). Clause 7 and Annex C: the uncertainty of a measured reverberation time and the two stage supports.