Skip to content

v0.1.0-pre

Pre-release
Pre-release

Choose a tag to compare

@vynulldev vynulldev released this 07 Jul 03:05

Vynull v0.1.0-pre — first public prerelease

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

⚠️ First public prerelease. This is a hobby project that speaks a protocol
Pioneer never documented, worked out from other people's reverse-engineering.
Expect bugs and the occasional strange deck behaviour. Not affiliated with
Pioneer DJ / AlphaTheta. Try it before you trust it in a set.

Highlights

  • Virtual CDJ / rekordbox on the Pro DJ Link network — CDJs browse (by
    artist, album, genre, BPM, key, label, year, remixer, folder) and load your tracks.
  • Browser library manager (--web) — browse/search, edit metadata, manage
    cues/tags/(smart) playlists, view live players, zoom waveform + beat grid with
    beat-jump, three UI themes, and configure CDJ settings.
  • Import from rekordboxrekordbox.xml, an encrypted master.db, or a
    library-backup .zip: tracks, MyTags (+ categories), colors, (smart)
    playlists, hot + memory cues (colors + loops), ANLZ waveforms/beat
    grids/phrases, and artwork.
  • Color waveforms on the CDJ (PWV4 overview + PWV5 scrolling; blue / RGB /
    3-band, honoring the deck's waveform-color setting). CDJ-3000 3-band
    (PWV6/PWV7) supported.
  • Native FLAC / WAV / AIFF playback streamed over NFS (optional transcode to MP3).
  • BPM detection + beat grid (dynamic-programming beat tracker), cue
    management
    , key detection.
  • DJM mixer awareness — surfaces channel / master state on the link.
  • Live terminal monitor (TUI), lazy analysis for instant startup, and
    USB export to a rekordbox-compatible structure.

Full feature list and HTTP API in the README.

Platforms

  • Linux — x86-64 & ARM64 (runs on a Raspberry Pi).
  • A network interface on the same subnet as your CDJs (typically link-local 169.254.x.x).
  • --mode rekordbox (the default) needs no privileged ports; --mode cdj
    (appear as a CDJ-USB source) needs UDP port 111 — see the README.

Tested with

  • CDJ-2000NXS2
  • DJM-A9

Known limitations

  • Beat-grid phase matches rekordbox's on only a fraction of tracks. BPM is
    usually right, but the detected downbeat/phase can be off. Adjustable per
    track from the web UI / API.
  • DJM mixers presence + master/channel state are surfaced from
    broadcasts; deeper mixer control isn't implemented.
  • More broadly: some features are half-finished or only work in certain setups.
    Treat it as a work in progress. Bug reports and PRs welcome.

Getting started

Grab the build for your platform from the Assets below, or build from source:

git clone https://github.com/vynulldev/vynull && cd vynull
make build
./vynull --web        # library mode + web UI, no music dir required
# add music via the web UI or the HTTP API, then LINK

See the Quick Start for import-from-rekordbox, directory mode, and CDJ mode.

Thanks

Built on the reverse-engineering published by Deep Symmetry (dysentery / beat-link / crate-digger), rekordcrate, python-prodj-link, and pyrekordbox.
Full credits in the README.

License

GPL-3.0-or-later. Independent and unofficial — not affiliated with or endorsed by Pioneer DJ / AlphaTheta, Deep Symmetry, or any project listed above.