Skip to main content

Club-library interchange

The canonical library is implemented in the Rust platform. Broad club interoperability is a separate, staged capability: audio codec support, library interchange, player USB databases, and hardware-tested behavior are different claims.

CapabilityCurrent status
Canonical UUIDs, originals, analysis, manual review, SQLiteImplemented
WAV/FLAC/MP3/AIFF/M4A ingestDecoder enabled; AIFF conversion has an independent fixture; AAC/ALAC require supported M4A content
PCM WAV export, relative M3U8Implemented
Rekordbox XML metadata/grid/first-beat cue exportImplemented and parser-tested; actual rekordbox import not yet verified
Direct Device Library / OneLibrary / PDB / ANLZNot implemented
Serato / Traktor / Engine DJ native databasesNot implemented
Physical player validationNot performed

Export workflow

Stop concurrent CLI/daemon mutations of the same data root, then run in aidj-platform:

cargo run --release --bin booth-cli -- club-check
cargo run --release --bin booth-cli -- export-club ./club-export

All tracks must have reviewed BPM/key/grid and intact canonical assets. Export writes a new directory only; it never overwrites an existing package. It aborts if PCM conversion would clip. The readiness report checks metadata/assets; actual export additionally checks every sample. The web library offers this preflight check; package generation is currently CLI-only.

The package contains audio/*.wav (48 kHz, 24-bit integer PCM, stereo), playlist.m3u8, rekordbox.xml, manifest.json, and compatibility.json. UUIDs remain platform identities; numeric XML IDs are package-local and mapped in the manifest. Source analysis and originals remain unchanged.

XML carries title/tags/key/BPM, a constant reviewed 4/4 beatgrid and one memory cue at the reviewed first beat. It does not claim variable-tempo grids, existing hot cues, loops, semantic phrases or advanced AI analysis. M3U8 carries relative audio paths only.

Moving between computers

XML uses absolute file URIs. Supply the intended final media directory when exporting on one computer for import on another:

cargo run --release --bin booth-cli -- export-club ./windows-export file:///E:/Prochain/

Put the contents at that final location (E:/Prochain/audio/... in this example). Encode spaces in URIs as %20. If the package moves later, relink in rekordbox or create a new export with the correct URI. M3U8 remains relative and can be used by software that supports that format.

The club USB step

Import the XML into rekordbox and verify paths, grids and cues there. Then export via rekordbox to the USB library format required by the target player. The official XML specification describes interchange, not a directly playable USB database. The OneLibrary guidance distinguishes OneLibrary from traditional Device Library and explains exporting both where needed.

A WAV package is not universal club certification. Verify media format, filesystem, library format, firmware and playback on the intended equipment before relying on an export. Future direct database adapters must preserve provenance/manual edits and use real fixtures plus device tests.