KUNDALI(1) what plays next KUNDALI(1)

kundali - One score answers what plays next.

Anchor
a track by name, or a key and tempo for a track the library does not hold
Key
steps around the circle of fifths. Relative major and minor cost nothing
Tempo
a bounded log ratio, inside a 5 BPM window by default
Sound
48 spectral-style descriptors, used only when style evidence exists
Algorithm
collier has its own scoring, computed locally from the analysis in your library
Footprint
no database writes, no audio reads, an explanation for every pick

Two tracks are near when three things agree. Their keys sit close on the circle of fifths. Their tempos sit inside a bounded ratio. When the evidence exists, their sounds agree across 48 spectral descriptors. A minor and C major use the same seven notes, scoring zero steps. C major and C minor share only a tonic, scoring three.

Missing evidence never excludes a track. It removes a term. A track with no style still places, on key and tempo.

balanced-ncd-v1 is the default and the match tab's only model. It adds a compression distance over a quantised chroma sound print to key and tempo. The print comes from the same chromagram that key detection uses. balanced-v1 folds key, tempo and style together. legacy keeps the older proportional-tempo rating. camelot-v1 refuses harmonically unrelated steps outright.

--chain turns ranking into a walk. Each track follows its predecessor, and every position stays inside the original anchor's tempo window. The optimizer starts from a greedy walk and improves it with a bounded, deterministic two-opt, worst edge first. The same library gives the same walk every time. --explain names why each pick won. --json hands the plan to another program.

kundali --chain --explain 'Aphex Twin - Xtal'

collier-cli gathers the evidence and colatch turns the ranking into playlists. From the nearest hundred of a selected track to a whole planned set, one score decides.

decks(1) · collier.club · colatch(1)

2026-10-24 collier