An FFT you can size
Choose 2,048 to 32,768 points and see what that buys: the bin width in hertz and the window length in milliseconds update as you switch, so the trade between detail and speed is visible rather than hidden.
See exactly which frequencies your microphone hears. Watch a live FFT spectrum, a scrolling spectrogram, or octave band bars, read the loudest peak to a fraction of a hertz with its nearest note, then freeze the moment and save it as a PNG or a CSV.
Nothing is requested until you press Start or pick a file.
Off. Nothing has been requested yet.
Browsers hide device names until a site is allowed to use the microphone. The list fills in after you press Start.
Off by default here, because each step reshapes the spectrum. Each change reopens the microphone.
Subtracts whatever your speakers play. It notches and smears steady tones, so leave it off unless the speakers feed back.
Browser reports: after Start
Strips steady sound such as fans and mains hum, which is often exactly what you came here to find.
Browser reports: after Start
Rides the level up and down while you watch, so two readings a minute apart stop being comparable.
Browser reports: after Start
Sound is analysed inside this tab and never uploaded or recorded. The microphone is never sent to your speakers, so it cannot feed back.
Level in dBFS against frequency, bass on the left. The fainter line holds recent peaks for a second before letting them fall.
Press Start microphone and allow access. The spectrum appears here, bass on the left and treble on the right.
5.86 Hz bins · 171 ms window at 48 kHz, until an input opens. Larger sees finer detail but reacts more slowly.
Averages each bin over recent frames. 0 follows every flicker; 0.95 is very steady but slow.
The top and bottom of the display. 0 dBFS is a full-scale sine.
Each octave gets the same width, the way the ear hears pitch.
Keeps each recent maximum on screen for a second, then lets it fall at 12 dB a second.
Start the microphone or play a file to find the loudest tone.
Notes assume A4 = 440 Hz. The loudest peak is often a harmonic rather than the note being played, so check it against the list of five.
Each stands at least 12 dB above the bins around it, clear of louder peaks' side lobes, and half a semitone from the others.
Peaks are listed here once sound is arriving, loudest first, with their nearest note.
The power in each band, summed across its bins. These are the bars of the octave band view, as numbers.
A tone inside a band reads its own level. Tiles marked est. are narrower than two FFT bins at this size, and a dash means the sample rate does not reach the band.
The sample rate sets the top of the display. Bin width and window follow from it and the FFT size.
Readings are dBFS, relative to the converter's full scale, and uncalibrated. They are not dB SPL, this is not a sound level meter, and the input volume in your operating system moves every number up or down.
Its own frequency response shapes everything you see. Phone and laptop microphones fall away below about 100 Hz, and Bluetooth headset microphones are narrowband, often sampled at 8 or 16 kHz, so nothing shows above 4 or 8 kHz.
Nothing above half the sample rate (the Nyquist frequency) can be represented, so the display stops at 20 kHz or at that limit, whichever is lower. At 48 kHz that is 20 kHz; at 16 kHz it is 8 kHz.
Echo cancellation, noise suppression, and automatic gain control remove hum, notch tones, and move levels. They start off here, and the input panel shows whether the browser honoured that request.
FFT 2,048 to 32,768 points · Blackman window · peaks fitted between bins · sine-referenced dBFS · bands summed as power · up to 16,384 CSV rows · nothing uploaded
Check the input level, clipping, and processing first, so the spectrum starts from a healthy signal.
Turn a peak's frequency into a note, a MIDI number, a wavelength, and its harmonic series, or work the other way.
Play a sweep or pink noise through your speakers from a second tab and watch where their response rises and falls.
Pressing Start opens the microphone with getUserMedia and feeds it to a Web Audio analyser. On every screen refresh the analyser takes the latest 2,048 to 32,768 samples, shapes them with a Blackman window, runs a fast Fourier transform, smooths each bin over time, and hands back a level per bin. The page adds back the 13.56 dB that the window and the one-sided spectrum take away, so a full-scale sine reads 0 dBFS, then draws the bins on a logarithmic or linear axis, keeping the loudest bin under each pixel so no narrow peak is thinned away. Peaks are fitted between bins with a parabola, octave bands add up bin power, and the microphone is never connected to your speakers.
The browser asks for the microphone once, and only when you press Start. Echo cancellation, noise suppression, and automatic gain control start switched off, because each one reshapes the spectrum. To study a recording instead, play a local audio file through the same analyser.
Spectrum shows every frequency at once, Spectrogram shows how they change over time, and Octave bands sums them into the bars a real-time analyser uses. A larger FFT size separates close frequencies; a smaller one follows quick changes.
The loudest peak is shown in hertz and dBFS with its nearest note and cents, beside the next four. Freeze the display to read any point with the cursor, then save the view as a PNG or every bin as a CSV.
Choose 2,048 to 32,768 points and see what that buys: the bin width in hertz and the window length in milliseconds update as you switch, so the trade between detail and speed is visible rather than hidden.
Each peak is fitted with a parabola through the three bins around it, which places a steady tone within a few hundredths of a bin. The top five are listed with their nearest note at A4 = 440 Hz, the cents offset, and the band they sit in.
A live spectrum with a decaying peak-hold line, a scrolling spectrogram on a single-hue ramp at three speeds, and octave or third-octave bars on the IEC 61260 bands.
The analyser's window is corrected for, so a full-scale sine reads 0 dBFS at every FFT size. Band levels add bin power rather than averaging decibels, so a tone inside a band reads its true level.
Voice processing starts off, with the browser's own report beside each switch. Pick any connected input or one side of a stereo interface, or play a local file through the same analyser.
Freeze a frame and read the frequency and level under the cursor. Save the current view as a PNG with its axes and colour key, or every bin as a CSV of up to 16,384 rows.
A fast Fourier transform takes a short slice of sound and splits it into equally spaced frequencies called bins. The spacing between them, the bin width, is the sample rate divided by the FFT size: at 48 kHz, 8,192 points gives bins 5.86 Hz apart, and 32,768 points gives 1.46 Hz. A tone that falls between two bin centres is shared between them, which is why this page fits a curve through neighbouring bins to place a peak more precisely than the spacing alone allows.
Finer frequency detail needs a longer slice of sound. 32,768 points at 48 kHz is 683 milliseconds of audio, so a note has to last that long to be fully represented, and a quick change is smeared across the window. 2,048 points is 43 milliseconds and reacts almost at once, but its 23.4 Hz bins cannot separate 50 Hz from 60 Hz. Use a large size for steady sounds such as hum or a held note, and a small one for speech, drums, or anything that moves. Broadband noise also reads lower per bin as the bins get narrower, while a pure tone stays at the same level.
No. dBFS is decibels relative to digital full scale, where 0 dBFS is the largest value the converter can hold, and every reading here is on that scale, with a full-scale sine wave at 0 dBFS. dB SPL is sound pressure in the room, and getting there needs the microphone's sensitivity, the preamp gain, and the operating system's input volume, none of which a browser can know. Turn the input volume down and every reading drops while the room stays exactly as loud. The shape of the spectrum and the relative heights of its peaks are meaningful; the absolute numbers are not loudness.
Browsers clean up microphone audio for calls before any page sees it. Noise suppression removes steady sounds such as fans and mains hum, which is often exactly what you are trying to find. Echo cancellation subtracts whatever the speakers play, which can notch out a test tone. Automatic gain control raises and lowers the level as you watch. All three start off here, and the line under each switch shows what the browser says it actually applied, since some browsers ignore the request on some devices.
Set the FFT size to 16K or 32K so the bins are under 3 Hz apart, and use the spectrum view on the logarithmic axis. Mains hum sits at 50 Hz in Europe, Africa, most of Asia, and Australia, and at 60 Hz in the Americas and parts of Asia, with harmonics at whole multiples: 100, 150, and 200 Hz, or 120, 180, and 240 Hz. A strong 100 or 120 Hz line over a weak fundamental usually points at a transformer or a power supply rather than a ground loop. Watch the peak list as you unplug or move cables one at a time.
Built-in microphones are tiny, and they are filtered on purpose to keep out handling noise, wind, and the device's own vibration, so most of them fall away steeply below about 100 Hz. The analyser shows what the microphone delivers, not what is in the room. To see real bass, use a measurement microphone or a decent USB or interface microphone, and keep voice processing off, since some of it adds its own low cut.
Time runs from right to left, frequency from bottom to top, and brightness is level, from the page's ink for silence through lime to near white for the loudest. A steady tone draws a horizontal line, a voice draws a stack of parallel curves (its harmonics), a whistle glide draws a slope, and a clap is a short vertical stripe. It keeps filling while you look at another view, so switching to it shows the last few dozen seconds.
For a steady tone, very. Each peak is fitted with a parabola through the three bins around it, and tested on synthetic tones through the same Blackman window the browser uses, the estimate landed within 0.007 of a bin, which is under 0.04 Hz at the default 8,192 points and 48 kHz. Real sound adds noise, vibrato, and nearby partials, so treat it as accurate to a small fraction of the bin width shown. The audio clock matters too: a converter running 50 parts per million fast reads every frequency 50 parts per million high. And the loudest peak is often a harmonic rather than the note being played.
Yes, as a comparison tool. For feedback, raise the gain slowly until the system starts to ring, freeze the display, and read the loudest peak: that is the frequency to cut on the equaliser, with its nearest note alongside. For a room mode, play pink noise or a slow sine sweep and look for peaks that stay put as you move the microphone, usually below 300 Hz. Because the microphone is uncalibrated, compare positions and settings against each other rather than reading the numbers as absolute.
No. The analyser reads the microphone or the file inside this tab with the Web Audio API and keeps only the latest frame for drawing. Nothing is sent to a server, nothing is saved in the browser, and nothing is recorded. A PNG or CSV exists only when you press export, and it goes straight to your device. Stopping the microphone releases it, and the browser's recording indicator should go out. A local file plays from your own device and is never uploaded.
Explore the growing collection for calculations, documents, writing, and everyday work.