Polyatic Spectrogram
All tools

Spectrogram

See sound as frequencies over time: live from your microphone, or a whole audio or video file at once.

The microphone opens only when you tap, with its echo, noise and gain filters off. Nothing is recorded or uploaded.

Time Freq

Mouse: hover to read, drag to pan, wheel to zoom time, Shift + wheel to zoom frequency, click to set where Play starts. Touch: one finger reads, two fingers pan and pinch.

Settings

Frequency axis

Highest frequency with sound

Sound reaches
–

Open a file to check how high its sound reaches. A sharp wall well below the file’s limit is the usual sign of lossy compression.

Saves the current view as a 1600 × 900 px PNG with its axes and colour scale.

How to use the spectrogram

  1. For live sound, tap Start microphone and allow it. Whistle, speak or play a note: it appears at the right edge and scrolls left. Tap Pause to freeze the picture.
  2. For a recording, tap Open audio or video and pick an MP3, WAV, FLAC, M4A, Ogg or a video such as MP4 or WebM. The whole file is decoded in this browser and drawn at once.
  3. Point at the picture (or touch it) to read the time, frequency, nearest note and level there, plus the loudest frequency at that moment. Zoom with the + and − buttons, the mouse wheel or two fingers; Fit shows everything again.
  4. Click or tap a moment, then Play: a lime cursor moves over the picture as you listen, so you can match what you hear with what you see.
  5. Change the FFT size, window, axis or colours if a detail is hard to see, then Export PNG to keep the view with its axes.

Reading a spectrogram

Time runs left to right, frequency bottom to top, and the colour of each point is how loud that frequency was at that moment, in decibels below digital full scale (dBFS: 0 dBFS is a sine wave as loud as the file can hold). With the default Viridis colours, dark purple is quiet and yellow is loud; the colour scale under the settings shows the range. A whistle is one thin line; a sung or played note is a stack of lines at whole multiples of its pitch (the harmonics); speech consonants like “s” are a haze between 4 and 10 kHz; a click is a thin vertical stripe through everything.

Some things worth looking for: mains hum, a steady line at 50 Hz (Europe, most of Asia and Africa) or 60 Hz (North America), often with lines at 100/150 Hz or 120/180 Hz above it; a whine from a charger or fan, a single steady line that does not change when you speak; birdsong, quick chirps mostly between 1 and 8 kHz, which the log axis and FFT 512 or 1,024 show best; and the cut-off of a lossy file, the flat top edge where everything above a fixed frequency has been thrown away.

FFT size, window, overlap and axes

Each column is the spectrum of one short slice of the sound, measured with a fast Fourier transform (FFT) of the chosen size. The size sets the trade: at 44.1 kHz, 2,048 points gives rows 21.5 Hz apart from a 46 ms slice, while 32,768 gives rows 1.35 Hz apart from a 743 ms slice, sharp in pitch but smeared in time. The page shows the exact figures for your file under the settings.

The window fades each slice in and out so its edges do not add false frequencies. Hann is the usual choice (its strongest false side line, the side lobe, is 31 dB down). Blackman-Harris pushes side lobes to 92 dB down, so a quiet tone right next to a loud one stays visible, at the cost of slightly wider lines. Rectangular means no fade: the narrowest lines, but side lobes only 13 dB down, so every loud tone sprays a ladder of false ones. Overlap starts each slice before the last one ends (50 % by default) for a smoother picture; it does not add real detail.

The linear axis gives every hertz the same height, best for hidden images and for the cut-off. The log axis gives every octave the same height, the way a piano keyboard does, so music and birdsong fill the picture; it starts at 20 Hz. The mel axis follows how far apart pitches sound to people (mel = 2595 × log10(1 + f/700)): close to linear below about 1 kHz and close to log above.

A worked example. A 1,000 Hz test tone at FFT 2,048 and 44.1 kHz falls between rows 46 (990.5 Hz) and 47 (1,012.1 Hz). The readout does not just report the nearest row: it fits a curve through the loudest row and its two neighbours, and reports the peak at 1,000 Hz (B5, 21 cents sharp), well inside one row.

The highest-frequency check

For a file, the page averages the spectrum of up to 600 slices spread through it, with a Blackman-Harris window so a loud tone cannot smear false sound upward. The music level is the median between 1 and 10 kHz, and the highest frequency with sound is the top point still within 70 dB of it. If the level then falls 25 dB or more within half a kilohertz, it reports a sharp wall. MP3, AAC and Ogg encoders cut everything above a fixed frequency to save bits, typically somewhere between 15 and 17 kHz at 128 kbps or below and 19 to 20 kHz at the highest bitrates, so a wall like that in a file sold as lossless (FLAC, WAV) suggests it was made from a lossy copy. It is an indication, not proof: an old tape, a dull microphone or a deliberate filter can also leave nothing up there, and an upsampled file can show sound up to a limit that is not its own.

What it cannot do

  • It is not a calibrated measurement. Phone and laptop microphones are not flat (most lose the deep bass and the top octave), and browsers and phones may still process the sound even with echo cancellation, noise suppression and auto gain switched off. So it gives no sound-pressure readings in decibels (dB SPL), only levels relative to the file’s or microphone’s full scale (dBFS).
  • Files over about 20 minutes (at 44.1 kHz with FFT 2,048 and 50 % overlap) are drawn with less time detail: the view holds about 53 million points, so long files get columns spaced further apart, and larger FFT sizes reach that limit sooner. Very long files can also run out of memory on a phone while decoding.
  • It decodes no data signals: no Morse, radio modes, SSTV pictures, modem tones or watermarks are read out, though you can see them.
  • The highest-frequency check is a clue about lossy compression, not proof either way.
  • It can only open files this browser can decode. Most read MP3, WAV, AAC/M4A, Ogg and the sound of MP4 and WebM videos; FLAC, Opus and some video sound tracks depend on the browser. The sample rate is read from WAV, FLAC, MP3, Ogg and MP4 headers; for anything else the file is decoded at 48 kHz, which the page says.
  • Live, it draws one column per screen refresh (about 60 a second), from the newest slice; overlap applies to files only. Most microphones record one channel, so left and right look the same live.

Privacy

A file you open is read and decoded inside this page; it is never uploaded. The microphone is opened only when you tap Start microphone and closed when you tap Stop microphone, open a file or leave the page; its sound is analysed a slice at a time and thrown away, not recorded. Nothing is saved on your device. The page counts an anonymous page view and the fixed words spec-live and spec-file, never a file name, a frequency or any sound.

Questions

Is this spectrogram online and free?

Yes. It runs in your web browser on a phone or computer with no app, account or payment. Files are decoded inside the page and the microphone is analysed inside the page; nothing is recorded, stored or uploaded.

How do I see a live spectrogram from my microphone?

Tap Start microphone and allow it. The picture scrolls from right to left, newest sound at the right edge, over the last 10 seconds (the time buttons switch between 2.5, 5, 10 and 20 seconds). Pause freezes it so you can point at a sound and read its frequency and note. The microphone is opened with echo cancellation, noise suppression and automatic gain control switched off, so you see what the microphone actually picks up.

Can I see the spectrogram of an MP3 and check whether it is really lossless?

Open the MP3 (or WAV, FLAC, M4A or a video) and the whole file is drawn at once. The Highest frequency with sound box then says where the sound stops. Lossy encoders usually cut everything above a fixed frequency, so a sharp wall near 16 kHz in a file sold as lossless suggests it was made from an MP3. It is an indication, not proof: some recordings simply contain nothing that high.

How do I find an image hidden in a song’s spectrogram?

Pictures hidden in sound are usually drawn in the upper frequencies over a few seconds. Open the file, choose the linear axis, an FFT size of 2,048 or 4,096, and zoom in time on the passage; the greyscale colour map and a narrower dB range make the shape stand out. Export PNG saves what you see, with its axes.

Which FFT size should I use in a spectrogram viewer?

It is a trade between detail in frequency and detail in time. At 44.1 kHz, 2,048 points gives rows 21.5 Hz apart and looks at 46 ms at a time: good for speech, birdsong and most music. 16,384 or 32,768 separates low notes and hum a few hertz apart but blurs anything faster than about half a second. 512 shows clicks and drum hits sharply but smears pitch.