Skip to main content

ADR 0005: one master mixer, four CDJs

Date: 2026-09-11. Status: accepted architecture; initial software implementation tested as local processes and Docker containers.

Context

The original platform demo rotates actors across two decks. The requested large-club B2B topology needs four CDJs feeding one shared mixer: conceptually two decks per DJ, with shared master audio and musical context. Independent complete booths per DJ would create the wrong summing/routing model.

Decision

Use four CDJ process/container roles and one dedicated mixer role per virtual club. A9 is the first semantic target; V10 is deferred. Reuse one build image across roles. The mixer controls the common output-frame clock and pulls equally sized blocks from every CDJ. Each CDJ owns its transport and decoded media. Actor assignment remains separate from deck/channel identity.

Expose owned HTTP/command/MIDI contracts rather than DSP-library objects. Evaluate bosai-dsp behind a future mixer adapter; do not silently substitute it for an A9 implementation. Keep private software audio transport separate from PRO DJ LINK and hardware USB/audio adapters.

Consequences

One Compose project is one five-container club; multiple projects isolate independent clubs. A hybrid human/physical and AI/virtual club needs explicit audio routing into a single final mixer plus clock/latency adaptation. Container reachability does not prove rekordbox compatibility.

The first implementation uses 960-frame HTTP pull blocks at 48 kHz and a stereo WAV monitoring endpoint. This is inspectable and testable but not certified low-latency performance infrastructure. Production jitter handling, dropout recovery, FX, cue buses, actor leases, native output routing and physical interoperability remain work.

Implementation evidence

aidj-club-emulator now contains the active runtime, Dockerfile, five-service Compose topology, native audio/MIDI option, unit tests and tools/smoke_b2b.py. The local-process smoke test passed. Docker build/runtime validation subsequently passed with two simultaneous five-container clubs, healthy services without restarts, four-channel audio, shared mixer/MIDI controls and cross-club isolation. No hardware/rekordbox acceptance is claimed. See topology, deployment and DSP evaluation.