MVP: two independent DJs, one continuous audible set
Accepted product scope, 2026-09-11. Implementation follows the repository scaffold. The target is a 20–30 minute back-to-back set produced by two independent AI DJs inside a two-deck virtual booth. Each chooses its own next track in response to the previous DJ. The result is an actual stereo mix with persistent decisions, events, metrics, and reproducible rendering.
The current four-deck metadata UI is a developer harness, not this MVP. The domain may support four decks, but the MVP runs two. Hardware, PRO DJ LINK, MIDI, CDJ emulation, rekordbox formats, Device Library Plus, desktop packaging, and creative FX are explicitly post-MVP.
Runtime
Analyzed track library
| |
DJ A DJ B independent profile, history, and memory
\ /
B2B orchestrator strict A → B → A → B turns
|
TransitionPlan validated musical decisions
|
Rust scheduler deterministic frame-timed actions
|
Deck 1 + Deck 2
|
EQ / filter / faders
|
stereo master
|
mix.wav + session logs
Agents produce bounded musical plans. They never set sample-by-sample controls or participate in an audio callback. A deterministic executor converts accepted plans into commands and ramps. The orchestrator owns turn assignment, load windows, transition grants, deadlines, and fallback behavior.
Delivery gates
| Gate | Outcome | Exit evidence |
|---|---|---|
| MVP-0 | Two scripted DJs alternate and render a five-minute stereo WAV offline | Valid audio, phrase-scheduled transitions, alternating ownership, complete journal, replay verification |
| MVP-1 | AI A replaces Script A; Script B remains the baseline | Schema validation, deadline fallback, track selection from analyzed library, recorded model decisions |
| MVP-2 | Independent AI A and AI B alternate choices | Separate profiles/memory, both choose tracks, no shared precomputed playlist |
| MVP-3 | Each AI reacts to its partner and completes a 20–30 minute set | Full acceptance suite below and listening review |
Start MVP-0 before integrating model providers. The first scripted renderer is an engineering baseline, not an AI-quality demonstration.
Final MVP acceptance
- Two independent agents alternate songs, each selecting its own next track.
- Choice considers BPM, key, energy, recent history, and the partner's last decision.
- Transitions start at verified phrase boundaries with working tempo alignment.
- Audible EQ/bass swaps and channel gain transitions are rendered correctly.
- A continuous 20–30 minute stereo master is exported to WAV and listened to.
- The UI shows both DJs, decks, current turn, accepted plan, and decision rationale while rendering progresses.
- Decisions/events are persisted with exact asset and engine identities.
- Recorded-decision replay reproduces the mix under a pinned renderer; model re-inference is a separate experiment.
- Metrics include clipping, unexpected silence, beat alignment, and missing-analysis counts with declared thresholds.
A valid WAV alone does not establish musical quality. Review representative transitions by listening and keep the findings with the run. Throughput is measured; no 100× claim is part of acceptance.
MVP UI
One B2B session screen shows DJ A/B identity and personality, decks 1/2, track/BPM/key, position, EQ/fader state, current turn, selected track and reason, planned start and duration, and rendering progress. Start/Pause/Stop control session execution; Render Mix creates a durable offline job with a WAV artifact. Pause freezes the simulation clock; cancellation preserves partial artifacts with an incomplete status. A second /events view exposes decisions, commands, and events.
“Live” means updates as the renderer works, not real-time speaker monitoring. Keep existing broad scaffold routes as engineering placeholders until the focused session screen replaces them. Low-latency playback can follow using the same DSP engine.