How does Adapt measure your surroundings and shape the sound?

Written 2026-10-06 · Reading time: about 14 minutes · You need to know: what a decibel is (a unit of loudness; 10 dB more sounds about twice as loud)

The short answer

When you press Play, the microphone listens for 4 seconds. The app reduces that sound to 8 numbers. Each number is the loudness of your surroundings in one octave band (a range of pitch). The 8 bands run from 63 Hz to 8 kHz, and each is twice the pitch of the one before. Then it shapes its own sound so that it sits 5 dB above your surroundings in every band, at the lowest level that does so.

Through the night, Adapt listens for 5 seconds every minute. When the noise rises, the sound rises, at most +6 dB by default. When the noise falls, the sound eases back. Nothing is recorded, stored or sent.

Assumptions on this page

1. One night: 8 measured numbers become 8 target numbers, each 5 dB higher

A phone lies on a nightstand. A partner snores. You press Play with Adapt on. The app opens the microphone for 4 seconds and splits what it hears into the 8 octave bands. The result of this example night is one loudness per band, in dB (decibels, the unit of loudness on a logarithmic scale). On this scale 0 dB is the loudest the microphone can record, and -60 dB is very quiet.

Worked example
  1. Listen for 4 seconds, then compute the loudness per band: -46, -38, -37, -44, -52, -60, -67, -72 dB from 63 Hz to 8 kHz. A snore is loudest around 125 to 250 Hz, so the low bands are loud and the high bands are quiet. The audio itself is now discarded.
  2. Add the margin (the fixed distance the sound must sit above the surroundings: 5 dB) to each number. The targets are -41, -33, -32, -39, -47, -55, -62, -67 dB. The margin is per band, because a sound that is 5 dB above the average could still be below the snore at 250 Hz.
  3. Search for the tone, the 8 band gains and the level that reach these 8 targets. The search tries every tone position and keeps the one that needs the least level. Two different tones can both reach the targets. The one that reaches them at the lowest level is the quietest sound that covers, which is the whole point.
  4. Play that sound. The home screen draws the sound as a green ribbon and the 8 measurements as the pale mound under it. The space between the ribbon and the mound is the margin. Where the mound rises above the ribbon, that part shows in terracotta: the band is not covered.

Result: 8 targets, each exactly 5 dB above its measurement, reached at the lowest possible level.

In every band the shaped sound sits exactly 5 dB above the surroundings.

Loudness in dB per octave band. Example night: a snoring partner. Higher bars are louder.

-80-60-40-2063 Hz125 Hz250 Hz500 Hz1 kHz2 kHz4 kHz8 kHzsurroundingsshaped sound, +5 dB

How to read this chart: each pair of bars is one octave band. The pale bar is the measured surroundings, the dark bar is the shaped sound. The dark bar is always 5 dB taller. The surroundings are loudest at 250 Hz (-37 dB) and quietest at 8 kHz (-72 dB).

Source: the example values above plus the margin of 5 dB from the code.

The 8 measurements and the 8 targets of the example night, in dB
BandSurroundings (dB)Target (dB)Margin (dB)
63 Hz-46-415
125 Hz-38-335
250 Hz-37-325
500 Hz-44-395
1 kHz-52-475
2 kHz-60-555
4 kHz-67-625
8 kHz-72-675

The margin column is 5 in every row. That is the rule, not a result of the example.

2. The rule: measure per band, cover per band, at the lowest level

The same 8 bands are used three times. The analyser (the part that turns 4 seconds of audio into 8 numbers) uses them. The equaliser (the part that raises or lowers the sound in each band) uses them. The solver that chooses the targets uses them. So the measurement and the shaping speak the same language, and nothing is translated between them.

In words: for each band, target = surroundings + 5 dB. Then choose the tone and the level that reach every target with the least level. The tone dial is in Settings. With Adapt on, the measurement sets it, and the dial shows the choice. With Adapt off, you set it.

3. Through the night: 5 seconds a minute, a rise of at most +6 dB

After the start, Adapt opens the microphone for 5 seconds once every 60 seconds. It compares what it hears with what it believed about the surroundings. When the noise rises, for example when a snore starts an hour after you fall asleep, the sound rises to meet it. The rise stops at the limit (the setting "Can rise": +3, +6 or +9 dB above your level; +6 dB is the default). When the noise falls, the sound eases back toward your level.

While the app confirms a change, the microphone stays open for several windows in a row. The orange microphone dot in the status bar is drawn by iOS, not by the app, so it shows the truth. On a quiet night it lights for about 5 seconds each minute.

4. Speaker and earbuds start differently, because of where the microphone is

Phone speaker

The microphone sits a few centimetres from the speaker. If the sound started at full level, the microphone would measure the sound itself. So the sound starts low and rises over 10 seconds while the 4-second measurement runs. Through the night, the app measures its own sound at the microphone and subtracts it. So it can tell the surroundings from itself.

Earbuds

The sound is in your ears and the microphone is in the phone. The microphone cannot hear what you hear, so there is nothing to measure about the sound. The sound starts at once, and the surroundings are measured beside it. Adapt still shapes the sound to the measured surroundings. It cannot check the result.

The principle: the start is soft only where the microphone would otherwise hear the sound as part of the surroundings.

5. Wrong idea corrected: "5 dB louder in total" does not cover a snore

Common wrong idea

Wrong: "The app makes the sound 5 dB louder than the room, so I could do the same with the volume button."

Correct: the margin is per band. In the example, the sound at 250 Hz must reach -32 dB. The sound at 8 kHz must reach only -67 dB. That is a difference of 35 dB between bands, and one volume setting cannot produce it.

Why the wrong idea fails: a plain white noise is about equally loud in every band. Turn it up until it covers the snore at 250 Hz. It is then far too loud at 4 and 8 kHz, where the surroundings are 30 dB quieter. The shape is what lets the sound cover at a low level.

6. Limits: the margin is a target, and earbuds cannot be checked

Limits

7. Check your understanding

Try to answer before you open each answer.
  1. How long does the microphone listen when you press Play?
    Show the answer

    4 seconds.

    Then 5 seconds once a minute through the night. A typical wrong answer is "all the time". The microphone is closed for 55 of every 60 seconds on a quiet night. See section 3.

  2. How many numbers does the app keep from that listening?
    Show the answer

    8.

    One loudness per octave band, 63 Hz to 8 kHz. The audio itself is overwritten. A typical wrong answer is "a recording": there is none. See section 1.

  3. In the example night the surroundings measure -60 dB at 2 kHz. What is the target for the sound in that band?
    Show the answer

    -55 dB.

    Target = surroundings + 5 dB = -60 + 5 = -55 dB. A typical wrong answer is -65 dB, from subtraction instead of addition. Another is "5 dB above the average of all bands". The margin is per band. See the table in section 1.

8. Recap, glossary, and sources

Recap
  1. 4 seconds of listening become 8 numbers, one per octave band from 63 Hz to 8 kHz. The audio is discarded.
  2. The sound is shaped so that each band sits 5 dB above its measurement, at the lowest level that reaches all 8 targets.
  3. Through the night Adapt listens 5 seconds a minute, rises at most +6 dB by default, and eases back when it is quiet.
  4. On a speaker the start is soft, because the microphone is next to the speaker. In earbuds the sound starts at once and cannot be checked.
Analyser
The part of the app that turns 4 seconds of audio into 8 loudness values, one per octave band.
dB (decibel)
The unit of loudness on a logarithmic scale. 10 dB more sounds about twice as loud. In this app 0 dB is the loudest the microphone can record.
Equaliser
The part of the app that raises or lowers the sound in each of the 8 bands.
Limit
How far the sound may rise above your level through the night: +3, +6 or +9 dB. The setting is called "Can rise".
Margin
The fixed distance the shaped sound sits above the surroundings in each band: 5 dB.
Octave band
A range of pitch, each twice the pitch of the one before: 63, 125, 250, 500 Hz, 1, 2, 4, 8 kHz.
  1. Given The 8 measured values of the example night are example values.
  2. High 4 seconds: RoomAnalyzer.captureSeconds in WhiteNoise/Sources/Audio/RoomAnalyzer.swift, line 37. 5 seconds once every 60 seconds: AdaptiveMonitor.window and interval, AdaptiveMonitor.swift, lines 24 and 25. Margin 5 dB: MaskingSolver.marginDB, Models/RoomProfile.swift, line 55. Soft start of 10 seconds: NoiseEngine.swift, line 2075. Limit choices +3, +6, +9 dB with +6 as default: SettingsView.swift line 32 and NoiseEngine.swift line 704. All read at commit 35aafce.
  3. High Targets in the table: calculated as surroundings + 5 dB.

Confidence labels: High means read in the code or calculated; Medium one good source; Low not verified; Given an example value.