Skip to content
WHAT’S UNDER THE HOOD

HOW IT WORKS

What each reading means, how it’s graded, and the math underneath.

Signal Check reads your track in five chapters: LEVEL, TONE, SPACE, FIX and REPORT. Seven readiness checks turn those readings into a score out of 100 and one verdict word. The whole thing runs in your browser. Nothing gets uploaded.

No AI model listens to your track. Every reading is standard audio math. The code behind it was written with Claude, an AI coding tool, and I check what it measures against meters I already own. More on that below.

WHY THIS EXISTS

Ears get less reliable over time. After a few hours on a mix, they adjust and stop being a fair judge. Signal Check runs the loudness, dynamics, stereo, frequency and true peak checks a mastering engineer would do by hand, so the read doesn’t depend on how tired you are.

It’s built for producers finishing a track without a mastering engineer on call. It compares you to released records in your genre, so a grade means “here’s where you sit next to music that’s out,” and the page shows the numbers behind every call.

THE CONSOLE

On a laptop or desktop, a two-row bar sits above every chapter. It stays put while you move between them.

ROW 1: PLAY AND READ

  • Play and the time. LOOP with the waveform lane beside it: drag across the lane to loop a section.
  • LUFS-I, M and S. Integrated loudness for the whole track, plus momentary (400 ms) and short-term (3 s) loudness that move while it plays.
  • GRADE VS picks the genre you’re graded against. Changing it regrades the numbers. It never changes the audio.
  • The verdict word and its lamp, then #1 FIX, the one thing to fix first. Click it to jump straight to that reading.
  • NEW TRACK loads another file. GET THE REPORT opens the REPORT chapter.
  • Load a reference track and two more buttons show up. A/B swaps playback between your track and the reference, lined up loudest part to loudest part. MATCHED turns the louder one down to the quieter one, so you compare tone instead of volume.

ROW 2: MOVE AND LISTEN

  • The chapter keys: LEVEL, TONE, SPACE, FIX and REPORT. Each one shows the worst lamp inside it as CLEAN, CHECK or FIX, so you can see where the problems are before you open anything.
  • MONITOR switches between STEREO, MID (left plus right) and SIDE (left minus right).
  • SOLO plays one band at a time: SUB, BASS, LOW-MID, MID, HIGH-MID or HIGHS, plus HARSH (2 to 5 kHz) and four mono checks: SUB, LOW, MID and HIGH IN MONO.
  • MATCH -14 plays your track at -14 LUFS, Spotify’s level, so you hear it the way a listener will after normalization. The gain stops before true peak passes -1 dBTP, and the key reads TP when that limit kicks in.
  • FIX is the same blend slider as the FIX chapter: Original on one end, the suggested EQ on the other. Keep it on while you move through the chapters to hear the moves anywhere. The readings always stay on your original track.

KEYS

  • 1 to 5 jump between chapters. Space plays and pauses. ← and → skip 5 seconds.
  • M cycles the monitor. L turns the loop on and off. [ and ] set the loop start and end at the playhead. ? opens the key list, which leaves out [ and ].

1 LEVEL

LOUDNESS

  • Where you land vs releases. A map with loudness (LUFS) across and PLR up the side. PLR is true peak minus loudness: how much room the peaks have over the average. Your genre’s range shows as a dashed box. Inside it, your dot is teal. Outside it, the dot turns yellow and an arrow says how many dB quieter or louder you are.
  • Loudness over time. The track’s loudness in half-second steps, with Spotify’s -14 drawn as a line and the loudest section marked. The loudest section gets its own number because that’s the part a limiter and a streaming platform react to first.
  • The lamp compares integrated loudness to your genre’s range. Past the range is CHECK. More than 2 LU past it is FIX.

DYNAMIC RANGE

  • Peak vs average. The peaks and the average level drawn as two envelopes. A wider gap between them means a mix that breathes.
  • Crest factor covers the whole track. PSR covers the loud sections, where dynamics get crushed. A quiet intro can hide a squashed drop in the whole-track number. PSR catches it.
  • Loudness density is the share of the track that sits within 3 dB of its loudest 3-second moment. At 70% or more, it reads WALL TO WALL.
  • The lamp says FIX when crest factor is under 5.7 dB, flatter than any release I measured. It says CHECK under 7.8 dB, where 9 in 10 releases sit above, or when PSR is under 5 dB. In Mastered, a track far more open than its genre also gets a CHECK.

CLIPPING & HEADROOM

  • Where peaks hit the ceiling. The waveform with every clipped sample marked, colored by how long each run of clipped samples lasts.
  • Burst length matters more than the raw count. A limiter kissing the ceiling for 1 to 3 samples is normal: about 7 in 10 clip events on the 39 lossless releases I measured are 3 samples or shorter. Long runs shear the waveform, and you can hear that.
  • Clipping is graded on the longest burst and on clipped samples per second. True peak and headroom read beside it. The exact lines are in HOW IT’S SCORED.

2 TONE

FREQUENCY

  • Your balance vs the target. Six bands: SUB (20 to 60 Hz), BASS (60 to 250), LOW-MID (250 to 500), MID (500 to 2k), HIGH-MID (2k to 6k) and HIGHS (6k to 20k). Your curve sits on top of your genre’s target, with a ±3 dB band around it.
  • By band. One card per band: your dB against the target. Within 3 dB is On target, within 6 dB is Check, past that is Off. A card can also say RINGS if a narrow peak inside that band sticks out.
  • Suggested EQ moves. Up to three cuts or boosts on the bands that sit more than 3 dB off the target. Each one is about 60% of the distance, between 1 and 6 dB, so it’s a starting point you finish by ear. A harshness cut and ring cuts get added when the resonance test calls for them.
  • The numbers line also gives your tilt: how fast the spectrum falls from 100 Hz to 4 kHz, in dB per octave, next to the middle of your genre.

RESONANCE TEST

  • Four lanes from 1 to 8 kHz, each checked against its own average: HONK (1 to 2 kHz), PRESENCE (2 to 3.5k), BITE (3.5 to 5k) and SIZZLE (5 to 8k). Checking each lane on its own means a peak near 5 kHz can’t hide behind the louder 2 kHz end.
  • The score runs 16 to 100 (three bad peaks is the floor) and is placed against released records in your genre: SMOOTH, TYPICAL, RESONANT or VERY RESONANT.
  • A band can sit on target and still ring, so this test runs separately from the HIGH-MID level. It measures two things: how far the worst narrow peak rises over the 2 to 5 kHz average, and how much a whole third of an octave in that range bumps above its neighbors.

VS GENRE AND REFERENCE TRACKS

  • The Vs genre menu picks the target you see. It also has Load a reference track. Pick that and choose an MP3, WAV or FLAC up to 50 MB (M4A, AAC, OGG, OPUS and AIFF work where your browser plays them), and the chart switches to that track as the target.
  • Up to three references stay on a shelf so you can switch between them. With one loaded, the chapter rows add REF numbers next to yours, and A/B and MATCHED show up in the bar.

3 SPACE

STEREO

  • Correlation over time. +1 is mono, 0 is fully wide, -1 is out of phase. Dips below 0 are where a mono speaker starts cancelling your mix.
  • Mono safety. A correlation meter, buttons to hear the low, mid and high bands summed to mono, a Hear it in mono button for the whole track, and a vectorscope.
  • The low end gets its own read below 120 Hz. Bass spread wide in stereo is bass that thins out on a phone speaker.
  • The lamp says FIX when correlation drops below 0. It says CHECK when mono keeps less than 70% of the energy, or when the low end is wide.

STEREO FIELD

  • Where each frequency sits between left and right, across 30 third-octave bands. A bigger dot means that band carries more of the track.

MONO FOLD AND PHASE

  • What mono loses: how many dB each band drops when left and right are added together. Drops of 3 dB or more get flagged.
  • Phase by band: correlation in every third-octave band instead of one number for the whole track, so you can see which band is the problem.

4 FIX

FIX takes the suggested EQ moves from TONE and plays them on your track. You hear what the change does before you open a plugin.

HOW THE MOVES ARE PICKED

  • FIX plays up to three of the moves TONE suggests: cuts or boosts on the bands furthest off your genre’s target, a harshness cut, or a cut on a band that rings. A harshness or ring cut goes on the mid only when the sides are far quieter there, so it doesn’t touch the stereo image.
  • When the low end is too wide, a side-only low shelf cuts the sides below 100 or 150 Hz. That pulls the bass toward the center without thinning the mid.
  • A reference track gets no moves. It’s the target.

HOW TO HEAR THEM

  • Three cards: A Original, B Adjusted and Δ Difference. They switch with a short crossfade (a 15 ms ramp) at the same spot in the track.
  • Level matched, down only. If the moves add loudness, the adjusted version is turned down to match. If they take loudness out, the original is turned down. Neither side ever gets boosted, so louder can’t fool you into picking it.
  • Difference plays only what the EQ changed. It isn’t level matched.
  • The blend slider scales every move at once. At 50%, each filter is at half strength.
  • Each move has its own Active or Bypassed switch and a SOLO BAND button. The drawn curve is the exact response of the filters you’re hearing.

It’s an approximation: fixed EQ on the whole mix. Use it to hear the direction, then make the move in your session, on the track that causes it.

5 REPORT

WHAT’S ON IT

  • The verdict, and how many of the seven checks came back clean.
  • The readiness checks: TRUE PEAK, DYNAMIC HEADROOM, DYNAMIC RANGE, MONO COMPAT, CLIPPING, RESONANCE and SUB RUMBLE. Each shows pass, check or fail, the number, and why.
  • Vs released records: your sub share, low-mid mud and mid weight placed in, at the edge, or out of the range releases in your genre land in. These are positions. They never turn red.
  • The fix list, in order: the checks that didn’t pass first, then the red readings from LEVEL, TONE and SPACE, then the amber ones, then anything out of the release range. Each line has the move to make. The LEVEL and TONE lines also link to the EQ trainer or the compression trainer to practice it.
  • The same numbers next to your genre’s range, and where it lands: what Spotify (-14 LUFS), YouTube (-13) and Apple Music (-16) do to your level when they normalize it.

TAKE IT WITH YOU

  • Get my report opens a printable sheet: your numbers, the fix list with tick boxes, and the platform table. Print it or save it as a PDF and keep it next to your DAW.
  • Export carousels makes 10 cards at 1080 by 1350 with your numbers and the verdict. Save them one at a time or as a ZIP.
  • Share copies your main numbers and a link.
  • The report and the carousel ask for your email. Running a check never does.
EVERY LINE

HOW IT’S SCORED

THE SCORE

  • Seven checks. A pass counts 1, a check counts half, a fail counts 0. Add them up, divide by 7, times 100. Every check weighs the same.
  • When resonance or sub rumble can’t be measured on your file, that check counts as a pass. Any other reading that can’t be measured counts as a fail.

THE VERDICT

  • READY: 80 or more, and no red fault.
  • ALMOST: 60 or more, and no red fault.
  • FIX FIRST: anything under 60, and any red fault, whatever the score. One fault in seven checks still scores 86. Without this rule, that track would read READY next to a red #1 FIX.
  • REFERENCE: any track checked in the Reference context. Nothing gets graded.

FACTS AND CONVENTIONS

  • Facts are measured problems with a line released records don’t cross: clipping, true peak, crest factor under 7.8 dB, resonance, sub rumble, stereo phase and mono compatibility under 70%. Only facts can be the #1 FIX or cap the verdict.
  • Conventions are where your genre usually sits: loudness and frequency balance against the genre, and a track that’s more open than its genre. They can turn amber or red as a heads-up. They never become the #1 FIX, because a quieter or darker track can be the right call.
  • #1 FIX ranks the facts red first, then amber, then by how far past its line each one sits. The worst one goes in the bar as one plain sentence.

THE LINES

Amber means the reading sits past 9 in 10 released records I measured. Red means it’s past every one of them. True peak, clipping and crest factor come from the 39 lossless files in the set, because a lossy file’s decoder adds its own peaks. Resonance and rumble come from all 171 records.

ReadingCheck (amber)Fault (red)Where the line comes from
True peakabove +2.1 dBTPabove +3.6 dBTP9 in 10 releases stay under +2.14; the hottest hit +3.52 (39 lossless)
Clipping, longest burst15 samples or more135 samples or more9 in 10 under 14.4; the longest was 134 (39 lossless)
Clipping, density45 per second or more661 per second or more9 in 10 under 44.8; the densest was 660 (39 lossless)
Crest factorunder 7.8 dBunder 5.7 dB9 in 10 keep 7.78 or more; the flattest was 5.72 (39 lossless)
PSR, loud sectionsunder 5 dBnoneMastered only; counts toward DYNAMIC RANGE
Resonance, worst peakabove 15× the 2 to 5 kHz averageabove 45×9 in 10 under 15.1×; the most was 44.5× (171)
Resonance, 2 to 5 kHz bumpabove +3.6 dBabove +7.2 dB9 in 10 under +3.55; the most was +7.17 (171)
Sub rumble, under 25 Hz vs everything up to 250 Hzabove -20 dBabove -8 dBmedian -28.1; 9 in 10 under -20.1; the most was -8.2 (171)
Mono compatibilityunder 70% (SPACE lamp)no red; under 85% fails the MONO COMPAT checkPhone and club speakers sum to mono
Correlationnonebelow 0Out of phase: mono starts cancelling
Dynamic headroomlouder than -6 LUFS with crest under 7.8 dBlouder than -3 LUFS with crest under 5.7 dBRoom left for a mastering engineer
Frequency vs genre (convention)more than 3 dB offmore than 6 dB off17 genre targets from the 171; never the #1 FIX

Streaming platforms ask for -1 dBTP. Signal Check quotes that figure as the safe ceiling, but most released records sit above it, with the middle master around +0.3 dBTP. So anything up to +2.1 passes and reads TYPICAL.

WHAT IT GRADES AGAINST

TWO CONTEXTS

  • When you load a track, Signal Check asks what it is. Mastered is the default. It grades your track as a finished release against released records in the genre you pick.
  • Reference turns grading off. Use it to read a release you admire without holding it to pass or fail. It shows the numbers as a target to aim for.

22 TARGETS, 171 RECORDS

I bought 171 released records across 17 genres, and Signal Check measured every one. Each genre’s loudness range is the middle half of its records. Its frequency target, band spread and resonance range come from the same set. The PLR side of the loudness map is still an estimate, waiting on a re-measure.

GenreRecords
Hip-hop16
R&B15
Rage13
Phonk12
Rock11
Hyperpop11
Electronic10
Drill10
Cinematic10
Pop9
Country9
Boom bap9
Trap8
Nu metal8
Reggaeton7
Dubstep7
Lo-fi6
All genres171

Amapiano, Afrobeats, K-pop and Jersey club are on the menu too, but I haven’t measured records for them yet. They use a representative loudness range and a tone curve measured from a few reference tracks, outside the 171. Small genres are small samples. Six lo-fi records point the way, so read that target as a rough guide.

THE SCIENCE

LOUDNESS

  • Integrated loudness in LUFS, K-weighted and gated per ITU-R BS.1770-4, the standard streaming platforms use to normalize: 400 ms blocks every 100 ms, a -70 LUFS absolute gate and a -10 LU relative gate.
  • Short-term loudness uses a 3-second window every 100 ms. The loudest section is the 95th percentile of those windows, so one freak moment can’t define it.
  • Every file is decoded at 44.1 kHz before anything gets measured, whatever your computer’s audio runs at.

DYNAMICS

  • Crest factor: 20 × log10(true peak ÷ RMS), in dB. A wide gap means the mix still breathes. A narrow one means it’s been pushed hard.
  • PSR is the peak minus the short-term loudness in each 3-second window, taken as the median across the loudest quarter of the track.

STEREO

  • Per-band correlation from the left and right channels, band by band, on top of the overall mono-sum check.
  • The low end below 120 Hz gets its own correlation, because that’s where a wide image costs you the most on a single speaker.

FREQUENCY

  • An 8192-point FFT with a Hann window, taken at up to 100 points spread across the whole track and averaged.
  • The resonance test looks for narrow peaks that rise well above their lane’s average and scores the three worst.

TRUE PEAK

  • True peak is the loudest point the waveform reaches between samples, which can be higher than the loudest sample. That in-between peak is what clips a converter or a codec on playback.
  • Found by 4× oversampling with a 24-tap, Hann-windowed sinc filter, the method ITU-R BS.1770-4 describes. On my 44.1 kHz test files it lands within 0.04 dB of ffmpeg, and a new version can’t ship if it drifts past 0.15 dB.

STAYS LOCAL

Your audio never leaves your browser. No upload. No account. Every measurement runs on your own computer.

WHAT IT KEEPS

  • Your browser keeps your settings (context, genre, chart options) and the numbers from your last check, so the next one can show what moved. It never keeps the audio.
  • Your email leaves only when you type it in for the report, the carousel or a waitlist. It goes to the newsletter.
  • The site counts a few events, like a finished check or an export, with privacy-friendly analytics. Your email and your audio are never part of that.

ON A PHONE

  • Signal Check works best on a laptop, and a phone gets a note saying so, with a button to send the page to yourself. You can still run it there.
  • A phone gets the same five chapters as tabs along the bottom.
  • Most tabs have a DETAILS drawer with the number next to the line it’s read against. The SUMMARY tab compares a new bounce of the same track with your last check: old value, arrow, new value. FIX and REPORT are laptop only.
AI-DEV-C

WHO WROTE THE CODE

I used Claude, an AI coding tool from Anthropic, to build Signal Check. Claude wrote the code. I decided what it measures, what it grades against and what each reading should tell you, and I bought the records it grades against.

Fixes and support go through Claude too. When something breaks, Claude writes the fix and I check it before it goes live.

Benn Jordan proposed a scale for how much AI goes into software (his post). Signal Check is AI-dev-C: “AI-written code is used primarily throughout the software under the guidance and supervision of a novice developer.” That’s an accurate description of how it was built.

I check the numbers. Every new version gets measured against ffmpeg’s loudness meter, which shares no code with this page. On my test files, loudness lands within 0.01 LU, and a new version can’t ship if it drifts past 0.1 LU. I also hold it up to iZotope Insight 2, the meter I’ve used for years.

Signal Check is free, and the code stays closed for now. If I ever charge for it, I’ll revisit that.

Every version since May 31, what broke, and why each part exists: Free mix analyzer built with Claude: the Signal Check story.

RUN A CHECK

Drop a track in and get the full read in seconds.

TRY SIGNAL CHECK FREE →