DJ audio quality checker — 100% local, no upload, no account.
Drop an audio file. Get a score from 0 to 100 and a full breakdown of every quality issue detected. Know instantly if your WAV is actually a WAV, or a re-encoded MP3 in disguise.
Can I Mix It? runs a multi-dimensional audio analysis pipeline entirely in your browser. Nothing leaves your computer.
Detected issues:
- Fake lossless (WAV/FLAC hiding a lossy re-encode)
- Spectral cutoff — effective frequency bandwidth
- Spectral wall — hallmark of lossy encoding
- Upsampling detection
- Clipping events
- Dynamic range (TT DR method)
- True peak (ITU-R BS.1770, 4× oversampling)
- LUFS loudness (EBU R128)
- Stereo field — correlation, mono duplicate, suspect stereo
- Sub-bass phase issues (<120 Hz)
- Pre-echo artifacts
- Codec blockiness
- Noise floor
Result: a Club Quality Score (0–100) with per-category penalty breakdown.
- Drop any audio file (WAV, FLAC, MP3, AAC, OGG, AIFF, M4A, Opus — max 500 MB)
- The file is decoded locally via the Web Audio API
- Six analysis modules run in a Web Worker
- Results are displayed instantly — spectrogram, score, penalty cards
- Vanilla JS (ES modules), no framework, no dependencies
- Web Audio API for decoding
- Web Workers for non-blocking analysis
- FFT (32 768-point, Hann windowing) for spectral analysis
- i18n: English / Français (auto-detected from browser locale)
├── index.html
├── style.css
├── js/
│ ├── app.js # Entry point
│ ├── ui.js # Rendering
│ ├── worker.js # Analysis orchestrator (Web Worker)
│ ├── analysis.js # Time domain, stereo, LUFS
│ ├── dsp.js # FFT, spectral analysis
│ ├── scoring.js # Penalty system & score
│ ├── parsers.js # File header parsing
│ ├── player.js # Audio playback
│ ├── spectrogram.js # Spectrogram rendering
│ └── i18n.js # Internationalization
├── locales/
│ ├── en.json
│ └── fr.json
├── Dockerfile
├── docker-compose.yml
└── nginx.conf
docker compose up -dServes the app on port 80 via nginx. No build step required.
MIT