Skip to content

Pool Discovery

Pool discovery finds groups of tracks that all work well together — tracks you can throw into a crate and improvise from, knowing any transition within the pool will sound good.

For the practical workflow, see Pool Building. This page explains the scoring model underneath.

A pool is an unordered set — pick any track next. A sequence (from Set Building) is a fixed order. Most DJs prep pools and read the room live.

Pool scoring asks “do these tracks belong in the same crate?” — not “should B follow A?”

  • score(A,B) always equals score(B,A)
  • No energy phases, genre streaks, or BPM drift penalties
  • Seven axes: BPM, energy, key, genre, timbral, brightness, rhythm
0.92 0.85 0.88 0.83 0.91 0.86 0.82 0.68 0.55 0.42 0.38 0.35 0.44 A Track A B Track B C Track C D Track D E Track E F Track F (weak)
High (≥0.8) Moderate (0.5–0.8) Low (<0.5) Weak member

Always available:

AxisWhat it measures
BPMHow close the tempos are
EnergyHow similar the energy levels are
KeyHarmonic compatibility (Camelot distance with detuning)
GenreSame genre (1.0), same family (0.7), or different (0.3)

With Essentia:

AxisWhat it measures
TimbralSonic texture similarity — the discovery axis
BrightnessSpectral centroid similarity
RhythmGroove regularity similarity

Tracks without Essentia data are scored on the first four axes only, with weights adjusted automatically.

This is the discovery axis — “sounds like it belongs.” It compares tracks using a 34-dimensional audio fingerprint built from MFCCs, spectral contrast, brightness variation, and dissonance. Each dimension is normalized across your library so no single feature dominates.

This is what lets pool discovery find cross-genre connections: a deep house track and a downtempo track that happen to share a similar sonic texture.

Pool Balanced
25%
20%
18%
12%
10%
Pool Timbral
20%
15%
35%
10%
Transition Balanced
20%
18%
30%
17%
BPM Energy Timbral Key Genre Brightness Rhythm
AxisBalancedTimbral
BPM0.250.20
Energy0.200.15
Timbral0.180.35
Key0.120.10
Genre0.100.05
Brightness0.080.08
Rhythm0.070.07

Balanced (default) — BPM and energy lead. Timbral adds a discovery dimension without dominating.

Timbral — upweights sonic similarity for cross-genre discovery. “What in my library sounds like these, regardless of genre tags?”

With master tempo off, pitching a track to match BPM shifts its key — just like vinyl. A 3% BPM change shifts the key by about half a semitone.

Pool tools account for this using a reference BPM: all tracks’ effective keys are computed at that reference BPM. The agent can sweep reference BPMs to find the one that maximizes key compatibility across the pool.

Key compatibility degrades smoothly with pitch shift. Instead of hard Camelot boundaries, the score blends linearly between positions as detuning increases.

Sub-JND Noticeable Ambiguous 0.00.20.40.60.81.0 0 10 20 30 40 50 0.91 @ 10c 0.78 @ 25c 0.55 @ 50c Key score Detuning (cents)
Same-key example: bilinear interpolation blends between the native key (1.0) and the +1 semitone transposition (0.1 for a 7-position Camelot jump). Actual scores vary by starting key relationship.

When adding tracks to a pool, the agent uses iterative greedy expansion:

  1. Score all candidates against the current pool. Pick the best one.
  2. Add it to the pool. Re-score remaining candidates against the expanded pool.
  3. Repeat until done or quality drops below threshold.

Each addition is guaranteed compatible with the full pool at the time it’s added — including previous additions. This prevents the problem where multiple additions are each compatible with the seeds but not with each other.

Step 1: Score candidates against seed pool Pool S1 S2 S3 C1 0.78 ← best C2 0.62 C3 0.33 threshold 0.4 Step 2: Add best, re-score against expanded pool Pool S1 S2 S3 C1 C2 0.71 ← best C3 0.31 Step 3: Add best, remaining below threshold — stop Pool S1 S2 S3 C1 C2 C3 0.28
Each addition is scored against the full pool including prior additions. Candidates below the quality threshold are rejected.

Pools become chapters when you validate and lock them. A chapter can be:

  • Sequenced — fixed track order (you’ve tested the transitions)
  • Unordered — you trust the compatibility and will improvise order live

Bridges connect chapters — tracks compatible with both the end of one chapter and the start of the next. See Chapter Set Planning.