Online Sub Crawl: find the best spot for your subwoofer

Two devices, zero pairing: the system plays low tones and your phone, opening this same page, recognizes by SOUND which frequency is playing and measures its level at each spot in the room. Mark positions and keep the best one.

A digital subwoofer crawl: your system plays known low tones and your phone becomes a bass level meter you carry around the room, revealing where room modes create peaks and where they carve nulls. Mark the candidate spots and the app ranks them by bass level and evenness — so the sub ends up where it actually performs, not where the furniture dictated.

No pairing, no server: the sound IS the sync

Instead of pairing devices over the network, the playing device loops a known tone sequence (25–100 Hz) and the measuring phone identifies each frequency by ear — a high-resolution FFT. That removes network lag and setup friction entirely: open this same page on both devices, one plays, the other measures. Levels are relative by design (that's all the crawl needs), automatic gain control is disabled and verified, and the screen stays awake while you walk.

Frequently asked questions

What is the “subwoofer crawl” and why does it work?

Room modes create spots where bass piles up (peaks) and spots where it cancels (nulls). The crawl exploits reciprocity: put the sub at your listening seat, play bass tones, and move around the candidate spots — where you hear/measure the most even bass is where the sub should go, because the transfer between the two points is identical in both directions.

How do the two devices stay in sync without pairing?

By sound. The playing device loops a known sequence of tones (25 to 100 Hz) and the measuring phone identifies the exact frequency with a high-resolution FFT. There's no server, no WebSocket, no QR pairing — the tone itself is the synchronization, which also means zero network lag.

Are the measured decibels real SPL?

No — they are relative levels, which is exactly what this technique needs: you're comparing positions against each other, not certifying absolute loudness. Phone mics also lose sensitivity in deep bass (below ~40-50 Hz), so trust comparisons more than tiny differences at 25 Hz.

Why does the app warn me about AGC?

Automatic gain control levels out whatever the mic picks up — flattening exactly the peaks and nulls you're hunting. The app requests AGC off and checks whether the browser obeyed; if it didn't, it warns you so you can switch browsers.

How do I read the ranking?

Each marked position stores the level of every tone it heard. “Avg level” is how loud the bass gets there; “uniformity” (±dB) is how even it is across frequencies — a low deviation means no tone disappears. The best spot for a sub combines a solid average with low deviation.