# Speaker Test

> Check left and right channels with a verdict, run a 20 Hz–20 kHz sweep with live readout, pan a tone across the stereo field and hear how low the bass goes.

- URL: https://bytescope.dev/en/speaker-test/
- Locale: en · Also: [ja](https://bytescope.dev/ja/speaker-test.md) · [zh-Hant](https://bytescope.dev/zh-Hant/speaker-test.md)
- Runs: Your files never leave your browser — all processing is local.
- Requires: Any modern browser (Chrome, Edge, Firefox, Safari), desktop and mobile.
- Updated: 2026-09-08

## What it does

Every tone on this page is generated in the browser with Web Audio the moment you press play — no audio files are downloaded and nothing is uploaded. Five instruments cover the questions that arrive with a new pair of speakers, a soundbar or a rewired desk: a left / right / both channel test that asks what you actually heard and delivers a verdict at the end; a 20 Hz to 20 kHz sweep with a live frequency readout and an "I stopped hearing it here" button that reports the frequency where the sound vanished; a stereo positioning test that pans a tone from hard left to hard right so you can hear whether the image really travels; and separate low- and high-frequency checks for the two ends of the range where speakers actually fail. Start with the volume low — a sweep concentrates all its energy at one frequency and is far more piercing at some of them than voices or music ever are.

### The sweep is bounded by your speakers, not your ears

When you press the button at 14 kHz, that number marks where the chain stopped delivering sound to the room — and the speaker is at least as likely a culprit as your ears. Laptop speakers roll off long before human hearing does, and phone speakers earlier still; run the sweep on built-in laptop speakers and you will "discover" hearing loss you do not have. The same holds at the bottom: a small desktop speaker simply does not reproduce 40 Hz, and its silence down there is physics, not a defect. The sweep's loudness is evened out with an approximate A-weighting compensation clamped to ±12 dB — that makes it bearable to sit through; it does not make it flat. Treat the readout as a property of this system at this volume, never as a hearing test.

### Wiring faults, dead channels and missing bass

The channel test settles the classic post-setup questions in under a minute: cables crossed behind the desk show up as a swapped verdict; a driver or amplifier channel that has died shows up as one side reporting silence while the same cable, moved to the other channel, plays fine. The stereo pan tells you whether the positional image holds together or lurches from one side to the other. The low-frequency check answers whether the bass you paid for actually arrives at your chair. Throughout, remember what this page is: a comparison and identification tool, not a measurement instrument. Results ride on the system volume, any OS or application equaliser in the path, and — over Bluetooth — on the codec and its resampling. It can tell you left is wrong or one side is dead; it cannot tell you your speakers are flat.

## Limits

Does not measure loudness in dB or fix audio drivers; it plays test tones per channel.

Start with the volume low. A test tone puts all its energy at one frequency, and around 1–4 kHz that is far more piercing than music at the same setting.

## Machine output

Copy JSON copies an envelope `{ tool, url, generatedAt, userAgentHint, result }`. `tool` is `"speaker-test"` or `"headphone-test"`; `result` is the same listener-test shape on both pages.

- `testsPlayed` (string[]) — Instruments the listener actually started, in on-screen order: `"channels"`, `"sweep"`, `"pan"`, `"band-low"`, `"band-high"`. Empty until something has been started.
- `channelAnswers` (array of objects) — Left, right, both — always that order. Empty until the channel run finishes. Each item is `{ played, heard }`; `heard` is `"left"` | `"right"` | `"both"` | `"nothing"` or `null` when that prompt was not confirmed.
- `channelVerdict` (string | null) — `"correct"` | `"swapped"` | `"left-silent"` | `"right-silent"` | `"both-silent"` | `"mono"` | `"inconclusive"`. `null` until the listener has answered enough for a verdict.
- `sweepPlayed` (boolean) — Whether the frequency sweep was started.
- `sweepMarkedHz` (number | null) — Frequency the listener marked. `null` = sweep not marked.
- `panPlayed` (boolean) — Whether the pan sweep was started.
- `bandLowHeard` (string | null) — `"yes"` | `"no"`. `null` = low-band prompt not answered.
- `bandHighHeard` (string | null) — `"yes"` | `"no"`. `null` = high-band prompt not answered.
- `sampleRate` (number | null) — AudioContext sample rate in Hz. `null` = context not opened.

## FAQ

### Can playing these tones damage my speakers?

At sensible volume, no — they are plain sine tones, well within what music already contains. The real risk is volume, and it lands on you before the hardware: a sweep puts all its energy at a single frequency, and around 1–4 kHz it is genuinely unpleasant at a level that felt fine for music. Start low and raise it only until the test is clearly audible. If small speakers pushed into deep bass start to buzz or crackle, that is a signal to back the volume off, not to keep going — sustained distortion at high volume is the one way a test tone can hurt a driver.

### I stopped hearing the sweep at 15 kHz — is my hearing damaged?

Probably not, and this page cannot tell you either way. The frequency where the sweep vanishes is bounded by the speakers at least as much as by your ears: laptop speakers roll off well before a person does, phone speakers far earlier still, and even decent desktop speakers lose output at the top of the range. Add the system volume, any equaliser and a Bluetooth codec, and the number describes the whole chain, not your hearing. If your hearing genuinely worries you, see an audiologist with calibrated equipment — that is a different instrument from anything a web page can be.

### Left and right are swapped — what do I actually check?

Work backwards from the speakers. Are the cables on the amplifier's or audio interface's L and R outputs the right way round? On a powered desktop pair, is the active speaker on the side you think it is? Then check the operating system: some audio drivers and virtual devices allow channel remapping, and a surround setup misconfigured as stereo can come out mirrored. Rerun the channel test after each change — it takes ten seconds. If one physical swap fixes it, it was the wiring all along.

### The bass test is silent on my laptop — is something broken?

No — that is the expected result, and the honest one. Reproducing 40 Hz means moving a lot of air, and a laptop enclosure physically cannot; most laptop speakers give up somewhere between 100 and 300 Hz. The tone itself is being generated correctly — plug in headphones and you will hear it. Silence down there on small built-in speakers is physics. If a large speaker or a subwoofer stays silent at 40–60 Hz, that is worth chasing: check the crossover setting, the sub's own volume knob, and whether the OS is actually sending it a full-range signal.

### Does testing over Bluetooth still mean anything?

For channel identification, yes — no codec moves left to right. For anything about frequency response or loudness, be careful: the codec compresses and resamples the signal, some devices add their own processing on top, and the top of the range suffers first. If a wired connection is possible, prefer it for the sweep and any level comparison. Whatever the transport, nothing leaves your machine — the tones are generated in the browser and go straight to the audio output.

## Related tools

- [Headphone Test](https://bytescope.dev/en/headphone-test.md) — Check a new pair of headphones for reversed sides, a quiet ear or missing bass before the return window closes.
- [Mic Test](https://bytescope.dev/en/mic-test.md) — Test your microphone with a live VU meter, waveform and spectrum, plus record-and-playback.
