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.
Pools vs sequences
Section titled “Pools vs sequences”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.
Symmetric scoring
Section titled “Symmetric scoring”Pool scoring asks “do these tracks belong in the same crate?” — not “should B follow A?”
score(A,B)always equalsscore(B,A)- No energy phases, genre streaks, or BPM drift penalties
- Seven axes: BPM, energy, key, genre, timbral, brightness, rhythm
The seven axes
Section titled “The seven axes”Always available:
| Axis | What it measures |
|---|---|
| BPM | How close the tempos are |
| Energy | How similar the energy levels are |
| Key | Harmonic compatibility (Camelot distance with detuning) |
| Genre | Same genre (1.0), same family (0.7), or different (0.3) |
With Essentia:
| Axis | What it measures |
|---|---|
| Timbral | Sonic texture similarity — the discovery axis |
| Brightness | Spectral centroid similarity |
| Rhythm | Groove regularity similarity |
Tracks without Essentia data are scored on the first four axes only, with weights adjusted automatically.
The timbral axis
Section titled “The timbral axis”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.
Weight presets
Section titled “Weight presets”| Axis | Balanced | Timbral |
|---|---|---|
| BPM | 0.25 | 0.20 |
| Energy | 0.20 | 0.15 |
| Timbral | 0.18 | 0.35 |
| Key | 0.12 | 0.10 |
| Genre | 0.10 | 0.05 |
| Brightness | 0.08 | 0.08 |
| Rhythm | 0.07 | 0.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?”
Master tempo and detuning
Section titled “Master tempo and detuning”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.
The detuning model
Section titled “The detuning model”Key compatibility degrades smoothly with pitch shift. Instead of hard Camelot boundaries, the score blends linearly between positions as detuning increases.
How expansion works
Section titled “How expansion works”When adding tracks to a pool, the agent uses iterative greedy expansion:
- Score all candidates against the current pool. Pick the best one.
- Add it to the pool. Re-score remaining candidates against the expanded pool.
- 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.
Chapters
Section titled “Chapters”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.