A first-class virtual booth
The virtual booth is an executable DJ environment that uses the same domain and arbitration rules as physical adapters. It does not need PRO DJ LINK emulation to function.
Target behavior
- Four independent decks with stable IDs, track identity, play/pause, seek, tempo, cue and loop state.
- Four mixer channels with gain, EQ, filter, fader, crossfader assignment, and master metering.
- Human, AI, scripted, and replay actors assigned per resource.
- Real-time playback, headless offline rendering, and metadata-only contract tests as explicit modes.
- Session journals, WAV output, reproducible state replay, and metrics with defined denominators.
Track metadata includes content hash, decoder information, source sample rate, duration, analysis version, beatgrid, cue points, key/energy estimates, and confidence. Unknown analysis values stay absent. A missing asset fails scenario validation; it is never silently substituted.
A scenario names its seed, track pool, initial state, actors and versions, resource ownership, renderer configuration, and stop condition. Validate all of these before starting. Reset creates a new run identity from the original scenario rather than rewriting an existing recording.
Modes
| Mode | Clock | Outputs |
|---|---|---|
| Metadata-only | Injected fixed-step simulation clock | State/events; no audio-quality claims |
| Real-time | Audio output timeline | Speakers/monitoring and optional recording |
| Offline | Renderer advances frames | WAV, journal, metrics, measured throughput |
Live human gestures are meaningful in real-time mode. Offline comparisons use recorded input schedules or explicitly scripted actors; a human cannot interact naturally with a 20× session.
Network protocol emulation is optional tooling around the booth. Keep it separable from the deterministic core.