Automatic DJ systems mostly target electronic dance music, whose regular structure makes rule-based mixing relatively easier. Vocal-rich popular music is harder: which track to play next, where to cue it, and which transition to use are tied together, so fixed rules handle them poorly. We present DJustify, a pop AI-DJ that puts an LLM in a reason-propose-verify-repair loop and lets it choose the next track, cue points, and mixing technique together. The LLM samples several transition plans; an external acoustic checker then scores the rendered audio and triggers repair when a check fails. Sampling keeps several candidate transitions per track pair instead of one fixed mix. In blind listening tests our transitions beat Mosaikbox, a reimplemented crossfade, and a cue baseline that reuses the crossfade’s cues; that last comparison shows most of the margin comes from cue placement. The same planner also picks and orders a set along an emotion arc: this improves story coherence over a no-story ablation, and within a set story and transition ratings show no measurable gap from a human DJ. The checker mainly adds reliability, not higher average quality: it repairs rare but audible errors such as cut vocals, while the planner stays non-deterministic.
Abstract
Audio Demos
Transition Comparison
Each system mixes the same outgoing track. Ours is the full system; Ours-C drops the checker, and Ours-C-R drops the reasoning as well.
Checker Rescue
Without the checker, Ours-C leaves an audible flaw at the seam. The checker flags it and Ours repairs the plan.
Constrained Diversity
Same track pair, three samples: where a fixed rule returns one mix, our planner varies technique and cue point.
Story-Driven DJ Sets
“Starts hurt and fed up, falls in love again, and ends in regret.”
- How arrogant can you be
- My heart beats wild for you
- You say I'm not needed, so I should just leave
- Loving you, I became someone new
- You bring out my best side
- You are my favorite baby
- Cause what I've done, I've made this way
- I took her love like candy from a child
- While I was loving another all the while
“A sweet romance begins, slowly gets complicated, and ends with me alone and sad.”
- Won't you pull up to me now
- I'm going in with you
- It don't make sense
- Damn, I don't even know who I was last night
- I think I'm in love with you
- You woke up and I can't get you out of my head
- But you're never by my side
- My heart is full of missing you
- You said true love isn't afraid of distance
“Starts curious and unsure, falls harder and harder, and ends hopeful.”
- Studying the zodiac for new clues
- Tell me how to win that heart
- Just like you, impossible to read
- See you all the damn time
- Love you in front of the entire world
- I can't leave alone
- Will the day ever come when I hold her hand
- I'm working up my courage
- Maybe we'll work out
“Starts chill and easygoing, builds up, and ends in a full-on party.”
- Walkin' through the town, sayin' what up to my people
- What a good day to be happy now
- It got me feelin' like a kid again
- Wind and sun, never worried about catching a cold
- This is how we roll
- Time to leave this damn place
- Get my drink on, and my smoke on
- It's the next episode
- We gon' rock it till the wheels fall off