VYNULL

A virtual CDJ / rekordbox source for Linux. Point it at your music and CDJs see it as a connected library — over Pro DJ Link, with color waveforms, beat grids, cues, and a browser-based library manager.

Linux · x86-64 & ARM64 Go GPLv3 unofficial · not affiliated with Pioneer DJ / AlphaTheta

See it

Vynull web UI — browser library manager
Add assets/screenshot-webui.png
— the browser library manager (browse, waveform thumbnails, tags)
Browser library manager — browse, edit metadata, waveform thumbnails, tags & playlists.
Track detail — zoom waveform and beat grid
Add assets/screenshot-detail.png
— track detail: zoom waveform, beat grid, cues
Track detail — zoom waveform, beat grid, cue points, key & BPM.
Live players and mixer status
Add assets/screenshot-players.png
— live players & mixer status
Live players — decks, master/sync/on-air, mixer status.

Three themes

Web UI — TERMINAL theme
Add assets/theme-terminal.png
TERMINAL
Web UI — SLATE theme
Add assets/theme-slate.png
SLATE
Web UI — LIGHT theme
Add assets/theme-light.png
LIGHT

What it does

Virtual CDJ / rekordbox source on the Pro DJ Link network
Import from rekordbox — XML, master.db*, or a backup zip
Color waveforms generated by FFT spectral analysis (PWV4 + PWV5)
Beat grid + BPM detection and key detection
Cue points — hot & memory cues, with colors and loops
Native FLAC / WAV / AIFF playback over NFS (optional transcode)
Browser library manager — search, tags, playlists, live players
Three UI themes — TERMINAL, SLATE & LIGHT, right in the browser
Smart playlists, MyTags, track colors, ratings
USB export — write a rekordbox-compatible USB structure
Headless mode + live terminal monitor; runs great on a Raspberry Pi

* rekordbox's master.db is encrypted — importing it requires the database key (see the README).

Quick start

# build (Go 1.21+, ffmpeg on PATH)
git clone https://github.com/vynulldev/vynull && cd vynull
go build -o vynull .

# serve your library to CDJs on the link-local network
sudo ./vynull --interface eth1 --music-dir ~/Music --web

# or start empty and add tracks via the API / web UI
sudo ./vynull --interface eth1 --web

Before you download

Vynull runs on Linux (x86-64 or ARM64). You'll need ffmpeg on your PATH, and a network interface on the same subnet as your CDJs (typically a 169.254.x.x link-local connection). The default rekordbox mode needs no privileged ports; appearing as a CDJ-USB source (--mode cdj) additionally needs UDP 111 — see the README. It's a hobby project: expect the occasional rough edge, and back up your rekordbox library before importing.