DEV Community

Cover image for I Built a Free AI Mix Analyzer That Scores Your Music 0-100
Oren MixDiagnose
Oren MixDiagnose

Posted on • Originally published at mixdiagnose.com

I Built a Free AI Mix Analyzer That Scores Your Music 0-100

I Built a Free AI Mix Analyzer That Scores Your Music 0-100

You finish a mix. It sounds great on your studio monitors. But when you play it in your car, on your phone, on cheap earbuds — it falls apart. The bass disappears, the vocals get buried, everything sounds muddy.

Every producer knows this feeling. The problem is your ears adapt. After 2 hours of mixing, you literally cannot hear frequency buildups anymore. You need an objective analysis — but hiring a mix engineer for feedback costs $50-200 per track.

So I built MixDiagnose — a free AI-powered mix analyzer that gives you a Mix Score (0-100) and specific, actionable feedback on what's wrong with your mix. No signup required.

How It Works

Upload any audio file (WAV, MP3, FLAC, or even MP4/MOV — we extract the audio automatically). The backend runs 12 parallel analyses:

1. Loudness Analysis (LUFS)

Using the ITU-R BS.1770 standard, we measure integrated LUFS, short-term LUFS, true peak, and crest factor. This tells you:

  • Is your mix loud enough for streaming? Spotify normalizes to -14 LUFS, YouTube to -13, Apple Music to -16
  • Are you over-compressing? A crest factor below 6dB means you're crushing your dynamics
  • Will your track trigger normalization? If you're at -8 LUFS, streaming platforms will turn you down

2. Frequency Balance

We split the spectrum into 6 bands (sub-bass, bass, low-mid, mid, high-mid, high) and measure the energy in each. Then we compare against ideal ranges derived from analyzing hundreds of professionally mixed tracks. This catches:

  • Muddy mixes (200-500Hz buildup — the #1 issue we see)
  • Thin mixes (no sub-bass energy below 60Hz)
  • Harsh mixes (2-5kHz too hot)
  • Dull mixes (nothing above 10kHz)

3. Stereo Width Analysis

Mid/side decoding gives us the stereo correlation and width. A width of 0 means your track is essentially mono. We also check for phase issues that'll cancel out when played in mono (phone speakers, Bluetooth speakers).

4. Dynamic Range

Crest factor and dynamic range measurements tell us if you're over-compressing. Modern streaming masters should have 8-14dB of dynamic range. Anything below 6dB sounds flat and lifeless.

The Mix Score

Each of the 12 metrics gets scored as good, warn, or bad based on universal thresholds (not genre-specific — a good mix is a good mix regardless of genre). The Mix Score is the average across all metrics, minus 8 points per Critical issue:

Grade Score Meaning
A 85-100 Release-ready
B 70-84 Almost there
C 55-69 Needs work
D 40-54 Significant issues
F <40 Major problems

The Tech Stack

  • FastAPI backend with async analysis pipeline
  • librosa for spectral analysis, pyloudness for LUFS measurement
  • PIL/Pillow for generating branded 1080×1080 report cards (Instagram-ready)
  • SQLite for everything — auth, sessions, affiliate tracking, shared analyses
  • Cloudflare Worker for custom domain routing
  • ffmpeg for audio extraction from video files

The whole thing runs on a single container. No PostgreSQL, no Redis, no microservices. SQLite handles 100+ concurrent users without breaking a sweat for this use case.

What I Learned Building It

  1. LUFS is not optional anymore. Every streaming platform normalizes. If your mix is at -8 LUFS, you're getting turned down by 6dB on Spotify. Your mix should target -14 LUFS integrated.

  2. Mono compatibility matters more than stereo width. 60% of listening happens on phone speakers or Bluetooth speakers — both are mono. If your mix collapses in mono, it's broken.

  3. The 200-500Hz range is where most mixes fail. Almost every amateur mix has too much energy in the low-mids. It's the frequency range your ears are least sensitive to, so you don't notice it building up.

  4. 0.0 dBFS is not clipping. Floating-point audio can represent values above 0.0, so a true peak of 0.0 is fine. You need >0.01 tolerance to detect actual clipping.

  5. Genre-specific thresholds are a trap. I initially built genre-aware thresholds (different LUFS targets for hip-hop vs acoustic). Users hated it — they didn't want to pick a genre to get feedback. Universal thresholds work better.

Try It

MixDiagnose — free, no signup for 3 analyses per month. Upload a file, get your Mix Score, see exactly what's wrong and what to fix.

I'd love feedback on the analysis accuracy. If you run a track through it and the feedback seems wrong, email me — I'm actively tuning the thresholds.


This article was originally published on MixDiagnose. MixDiagnose is free to try — no signup required.

Top comments (0)