Guide
What a DJ set analyzer actually measures.
Anything can print a number next to your mix. The useful question is which signal produced it. This page walks the pipeline MixGrade runs on the iPhone, with the settings each stage uses, so you can judge whether the score deserves your attention.
Analysis is one decode and six measurements
A DJ set is a single long file, so the expensive part is reading it. Everything downstream is derived from that one pass. Six stages run on the result, and each one answers a different question about the performance rather than about the music.
| Stage | Setting | What it buys you |
|---|---|---|
| Decode | 10 second chunks | The file is read once and split two ways: original sample rate for loudness and clipping, a 22.05 kHz mono downmix for everything spectral. Chunking is what keeps a three hour set inside a phone's memory. |
| Spectrum | 4096 point FFT, 1024 hop | About 21.5 frames per second. Long enough to resolve bass pitch, short enough that a transition does not smear into one frame. |
| Tempo | 60 to 185 BPM | Autocorrelation of the onset envelope over 8 second windows at 1 second hops, with parabolic interpolation and a half or double period check so a 128 BPM track is not reported as 64. |
| Key | 10 second windows | A 12 bin chromagram between 55 Hz and 5 kHz, correlated against the 24 Krumhansl-Schmuckler profiles. A key change has to win 20 consecutive seconds before it is accepted. |
| Boundaries | 120 second minimum | Cosine distance between the average feature vectors either side of a moving 4 second window. Peaks above the mean plus 1.5 standard deviations become track boundaries. |
| Loudness | EBU R128 and true peak | K-weighted 400 ms blocks at 75% overlap with absolute and relative gating, plus a 4x oversampled true peak detector. Measured in the time domain, never through the FFT. |
Why a transition is the unit, not a track
Mastering analyzers judge one track at a time. That is the wrong shape for a set, because a set is mostly other people’s finished masters. The only part you actually performed is the seam between them.
So the boundary detector finds the seams, and each one is expanded into a zone: the region around the boundary where the novelty curve stays above half its local peak, capped at 30 seconds either side. The width of that zone is also the label. Under 4 seconds is a cut, up to 30 seconds is a blend, longer than that is a long blend. Tempo drift is then measured inside the zone and compared against the stable tempo of the 45 seconds on each side.
That framing matters for the score. A tight cut and a two minute blend fail in different ways, and measuring drift across a whole track would hide both.
The scoring is arithmetic, not opinion
Every transition starts at 100 and loses points against fixed thresholds: 8 per BPM of drift beyond a 0.5 BPM grace, up to 25 for beat clash, 10 or 22 for a key move of two or three or more steps on the Camelot wheel, and 6 per decibel of bass clash beyond one.
The set level score is a weighted sum of five sub-scores: beatmatching 30 percent, harmonic 20, energy flow 20, levels 15, cleanliness 15. Publishing those weights is deliberate. A score you cannot reconstruct is a score you cannot argue with, and a DJ who cannot argue with the feedback will not act on it.
What an analyzer cannot tell you
Key detection is a correlation, not a fact. Percussive intros, atonal noise beds and vocal-only passages routinely correlate badly, which is why an unreadable key costs nothing in the score rather than being guessed at.
Boundary detection is equally bounded. A minimum segment length of 120 seconds means fast cutting inside a two minute window reads as one segment. Loop juggling and quick doubles are performance techniques a novelty curve is not built to see.
And no measurement reaches taste. Whether the record was the right record, whether the room wanted it, whether the set said anything: that is the part worth taking to actual listeners.
Where the audio goes
The whole pipeline above runs on the iPhone, using Apple’s audio and Accelerate frameworks. There is no MixGrade account and no MixGrade server, so an unreleased edit stays on your phone.
One feature crosses the network, and only if you leave it on. The optional tracklist sends short audio fingerprints, not your recording, to Apple’s Shazam service to name tracks. Switch it off and the analysis runs with no network at all.