Mixing in a home studio brings a permanent suspicion: am I hearing the mix or the room?
To measure the answer I wrote a tool. Play a sweep through the speakers, record it, derive the room’s impulse response, compute the reverberation time.
It worked. Sensible numbers appeared: RT60 ≈ 0.42 s. Normal for a home studio.
Then, as a check, I did something odd: I ran the same measurement without playing anything at all.
Result: RT60 ≈ 0.39 s.
The reverberation time of silence
With no sound in the room at all, my instrument produced nearly the same number. What it had been measuring was not the room — it was its own noise floor: a fan, the fridge, street rumble, the microphone preamp’s own noise.
Why this happens
A real decay curve falls like a straight line. But what you measure in a recording is the sum of the decaying sound and the noise:
Early on the room term dominates and the curve falls cleanly. Once the room term drops below the noise floor, the noise term dominates and the curve flattens.
Anything measured after that flattening tells you nothing about the room.
My mistake was fitting a slope to the whole curve. The flat tail makes the slope shallower than it should be, and a shallow slope means a long time. The instrument looked at its own silence and called the room reverberant.
The correct method
1. Schroeder backward integration
A raw decay curve is noisy; fitting a slope to a single-shot recording is unreliable. Schroeder’s method integrates the curve from the end backwards:
Each point is the total energy remaining after that instant. The result is smooth and monotonically decreasing even from a single shot.
2. T20 / T30 — do not try to measure 60 dB
A clean 60 dB decay needs a source at least 60 dB above ambient noise. In a home that is an eardrum-rupturing level.
| method | window | multiplier | dynamic range needed |
|---|---|---|---|
| T20 | −5 dB → −25 dB | × 3 | ≥ 35 dB |
| T30 | −5 dB → −35 dB | × 2 | ≥ 45 dB |
Starting at −5 dB is not arbitrary either: in the first few decibels the direct sound and early reflections are still mixed and no steady decay regime has formed.
Fixing the tool
1. measure the noise floor
→ mean energy of the last 10% of the recording
2. check the dynamic range
→ if peak-to-floor is under 35 dB, do not even attempt T20
3. fit the slope only within the valid window
→ −5 dB to −25 dB, staying 10 dB above the floor
if the range is insufficient: produce no number.
The last line matters most. The tool now sometimes refuses: “could not measure — insufficient dynamic range (28 dB); a louder source or a quieter room is required”.
Not producing a wrong number. A measuring tool that can say “I do not know” is trustworthy; one that produces a number in every condition means you cannot trust any of its numbers — because you cannot tell which ones are real.
What the corrected measurement said
| band | T20 → RT60 | reading |
|---|---|---|
| 125 Hz | 0.71 s | bass build-up — bare corners |
| 500 Hz | 0.34 s | good |
| 2 kHz | 0.28 s | good |
| 8 kHz | 0.22 s | slightly dead — carpet and curtains |
That 0.71 seconds in the bass explained why I kept fighting the low end in my mixes. The problem was not my ears or the monitors; it was the corners of the room.
What I learned
The most dangerous state for a measuring tool is looking functional while broken. A number arrives, in a plausible range, with a nice graph — and it is entirely wrong.
The check is always the same: remove the thing you are measuring and see what the instrument says. If it still produces a number, that number was never yours.
I later asked the same question of my server watchman and my trading engine. Both gave the same answer.