Back

    How Soonos analyzes a DJ mix

    Pipeline V5.2 — DSP + multi-pillar scoring + AI narration. Updated May 2026.

    1. The pipeline at a glance

    Every mix goes through a layered pipeline. Each layer produces measurable signals consumed by the next one. The final score is computed from objective measurements — not from a language model's opinion.

    Audio file
      → Decoding (Web Audio API / FFmpeg)
      → Low-level DSP features (FFT, RMS, autocorrelation, chroma)
      → Event detection (transitions, drops, breaks, phrases)
      → Multi-pillar scoring (6 dimensions, 0–100)
      → Calibration & Bayesian fusion (technique 70% + perception 30%)
      → DJ DNA fingerprint matching (8-D cosine similarity)
      → LLM narration (coaching, NOT scoring)
      → Persisted report (DB is the source of truth)

    2. Low-level audio features (pure DSP)

    • BPM detection — autocorrelation on the 60–180 BPM band, sliding window of 8 s, multi-peak picking with a "DJ sweet-spot" weighting around 120–135 BPM. Disambiguates double/half-time errors common in trance and techno.
    • Energy — RMS over 50 ms frames + short-term loudness in LUFS (ITU-R BS.1770). Used both for the energy curve and for transition handoff scoring.
    • Spectrum — 2048-pt FFT, log-spaced bands (sub / bass / low-mid / mid / high-mid / high) to evaluate EQ balance, mastering quality and EQ-swap cleanliness during transitions.
    • Tonality — 12-bin chroma profile + Krumhansl-Schmuckler key estimation → Camelot-wheel compatibility score for harmonic mixing.
    • Novelty curve — self-similarity matrix derivative for phrase segmentation (8 / 16 / 32 bars).

    3. Event detection

    On top of the raw features, the engine localizes the structural events that define a DJ set:

    • Transitions — spectrum derivative + cross-correlation between pre/post windows. Each transition is scored on beat alignment, EQ swap quality, duration, and harmonic compatibility.
    • Phrases — bar-aligned segmentation via novelty curve, used for the phrase_alignment sub-score.
    • Peaks & breaks — variance of energy combined with spectral flatness; feeds the macro-arc analysis.
    • Spoken intros — DJ intro / host / MC opening detection, so the pipeline doesn't penalize a 30 s a-cappella as a flat warm-up.

    4. The 6 scoring pillars

    Every measurement is rolled up into 6 normalized pillars (0–100). The weight of each sub-score depends on the detected set type (warm-up, peak time, party peak, closing) and the duration bucket (micro / short / mid / long / extended).

    1. Technique — beat alignment, tempo stability, EQ control, transition cleanliness.
    2. Flow — phrase alignment, energy handoff, tension/release, continuity.
    3. Selection — track quality, harmonic compatibility, musical coherence, post-peak selection.
    4. Crowd perception — engagement curve, fatigue risk, monotony risk, payoff. A perceptual model calibrated against a reference DJ dataset.
    5. Signature — intentionality, identity, restraint, controlled risk.
    6. Macro arc — trajectory coherence, peak positioning, intensity distribution, ending resolution.

    5. Calibration & final score

    • Bucket fusion — 70% objective technique (V5.2 pipeline) + 30% multi-profile perception (clubber, booker, pro DJ, producer, beginner DJ, promising DJ).
    • Bayesian confidence — each module reports its own confidence; low-confidence pillars are down-weighted in the fusion.
    • Integrity caps — bad mastering caps Selection; missing audio data on a transition scores 0 (no synthetic fallback).
    • Stochastic variance — re-analyzing the same mix yields a 5–7 point variance. This is expected behavior, not a bug: it reflects modeling uncertainty honestly.

    6. DJ DNA fingerprint

    Beyond the score, every mix gets an 8-dimensional fingerprint vector:

    1. Energy curve shape
    2. Transition density
    3. BPM range
    4. Harmonic complexity
    5. Dynamic range
    6. Surprise rate
    7. Restraint
    8. Peak strategy

    Cosine similarity is computed against a reference dataset of professional DJs to surface the closest signature matches.

    7. Where AI actually intervenes

    The Large Language Model (Gemini 2.5 / GPT-5) never assigns a score. It receives the already-computed numbers and is responsible only for:

    • Narrating what happened in the mix in plain language
    • Generating the AI Coach explanations and drills
    • Localizing feedback in EN / FR / ES / IT / DE

    This separation guarantees that two listens of the same report return consistent numerical results — the database overall_score is the single source of truth.

    Methodology — FAQ