A+BRelease history

Changelog

What is new in each release, newest first. The repository's CHANGELOG.md has the Open DJ 1.0 alpha entry, dated 2026-10-06 (Tue 6 Oct 2026) under app-v1.0.0-alpha.1; this page lists it with requirement ids. The April releases below are summarized from that file and belong to the library toolchain the app is built on.

BDeck B / Launch

Open DJ 1.0 alpha, released Wed 7 Oct 2026.

The first public release of the desktop app and its four-deck performance rig, tagged app-v1.0.0-alpha.1.

In short, for a DJ: four decks laid out like rekordbox, your rekordbox library imported without changing it, beat sync, master tempo, quantize and hot cues, stems and lyrics you have prepared, a missing-files view, and crash rescue. Not in it: MIDI controllers in the Mac app, making stems in the app, effects beyond the channel filter, and Windows, Linux or Intel Macs.

One explanation for every version on this site: the April v1.0* tags below are the library toolchain; v1.1.1 and the 0.1.x builds are internal test builds of the app; the public app line starts at app-v1.0.0-alpha.1. The highlights are worded as in the release notes; every other item below has a requirement id checked as shipped in .planning/REQUIREMENTS.md. Open requirements are on the Roadmap.

Highlights

  • Four decks on one screen. EQ, filter, trim and a crossfader on every deck, running on a Web Audio engine. LESS view keeps it to two decks.
  • Bring your rekordbox library. First run reads your tracks, playlists, beatgrids, cues, keys and waveforms. Open DJ never writes to rekordbox, and your library stays on your Mac.
  • AutoPlay. Open DJ mixes the next track in for you, beat-matched with Beat Sync. Take over at any point.
  • Move several knobs at once. Shift+click dials to select them, then scroll or drag to move them together. Drag up and down for one side and left and right for the other, to bring one track in while taking another out.
  • Headphone cue on a single output. With one audio device, split cue puts the master in one ear and your cue in the other.
  • See the vocals. A vocal lane shows where the singing sits, and synced lyrics run along the waveform for tracks that have them.
  • Record your set. REC captures the master mix to a file.
  • Scriptable. Every control has a local HTTP API and an opendj command-line tool, so you can drive the app from your own scripts.

Performance screen

  • Four decks, the mixer and the browser stay usable in a 1280x720 window. PERF-UI-01.
  • Controls that must feel instant (class A) have a stated latency budget and must not wait on a network round trip, and the app records the time from input to effect. LATENCY-01, LATENCY-03.
  • Beat Sync never changes the master deck's tempo, and with the Beat Sync Max setting on, followers stay locked to the master's downbeat. LATENCY-05, DECKUX-14.
  • Machine performance tiers scale the caches to your Mac. PERFMODE-01.
  • Crash rescue from rolling on-disk snapshots of the decks. RESCUE-01.
  • Cmd-Q asks before quitting and keeps audio playing until you confirm. INSTALL-21.

Mixer, stems and lyrics

  • Stem mute and solo on every mixer channel strip. MIXUX-06.
  • The STEM button turns a channel's EQ dials into stem levels. MIXUX-04.
  • Per-stem mini-waveforms under each deck's waveform. DECKUX-19.
  • Word-level lyrics as a lane on the waveform (LYR-03), and synced lyric lines beside the hot-cue bank (LYR-07).

Controllers

  • The Mac app's window has no WebMIDI, so it never asks for MIDI access and says controllers are not supported there. CTRL-04.
  • Source checkout in Chrome or Edge only, not the Mac app: a Pioneer DDJ-FLX4 device map, first hardware round Fri 18 Sep 2026. CTRL-01.

Library

  • Point the app at a music folder with no rekordbox; tracks arrive labeled unanalyzed, with nothing guessed. SETUP-03.
  • Tracks imported without vendor analysis are analyzed on import. PARITY-06.
  • A scan that finds zero files where it found some fails loudly and changes nothing. LIBM-41.

Agents

  • One typed command bus for UI, MIDI, keyboard and agents. AGENT-01.
  • The opendj command line, inside the installed app. AGENT-05.
  • An opendj mcp server in the app payload, with safety rails enforced server-side. AGENT-11.

Desktop app

  • The launch dmg is signed with an Apple Developer ID and notarized by Apple. OPS-14.
  • In-app updates, proven from 0.1.3 to 0.1.5. OPS-15.
  • Every build reports its own identity, and shows a visible fault when it cannot. INSTALL-07.
  • Google sign-in works in a packaged install with no shell setup. Sign-in is optional and the app works without it; it is required for the stems relay route and to enroll a machine in a CloudSync hub. AUTH-01.
  • Apple silicon (arm64) only, stated wherever a download is described. INSTALL-05.
  • No paid feature exists, so everything is available to everyone. ENT-04.

Known issues

  • Stems use a lot of memory. Each track loaded with stems takes about 130 MB for every minute of audio. In a 30-minute AutoPlay test of this build on a 16 GB Mac, memory held steady between tracks at about 2.5 to 3 GB, and dropped to about 1.2 GB once every deck was ejected (about 0.4 GB at launch). Quitting Open DJ releases all of it. On a Mac with 8 GB, avoid loading stems on all four decks. The CHANGELOG in the source still describes the larger growth measured on the previous internal build, which this build fixes.
  • AutoPlay can stop between tracks. With Beat Sync Max on, if Beat Sync cannot line the next track up with the playing one, the next track may load but not start, leaving silence. We have seen this when the two tempos are more than about 16% apart, and when the playing track has run past the end of its beat grid. Turn Beat Sync Max off to avoid it. A fix is coming in the next alpha.
  • Setup can stay on "Import in progress" after a small import. Rarely, when a folder imports in a second or two, the setup window keeps saying "Import in progress" after the import has finished. Your music is already imported: choose "Use the app while this runs", or quit and reopen Open DJ. A fix is coming in the next alpha.
  • The AutoPlay options menu is awkward to use. It closes if you move the pointer slowly from the AutoPlay button down to it, so move in one quick motion onto the option you want. Pressing Space there does not tick a box, so use the mouse. In the Light skin its text is hard to read; the Default and Gothic skins show it clearly. These are being fixed for the next alpha.
  • >| (next-track loop) is experimental: the transition is abrupt and does not blend yet.
  • Unfinished controls: a control with no real data source behind it is visible but inert, and its tooltip says so. Open DJ never shows invented data.

Not in this release

  • Windows and Linux. This alpha is macOS on Apple silicon only.
  • MIDI controllers in the Mac app. They work in Chrome or Edge only from a source checkout.
  • Choosing audio outputs inside the app: the app plays to the macOS default output, so set it in macOS Sound settings (CUEOUT-14 is open).
  • Effects beyond the channel filter, and a sampler: both are planned controls that show as not built.
  • Making stems from the installed app. Prepared stems play; the code to produce them is in the app, but STEM-39 stays open until a signed build separates a track on a clean Mac, so today stems come from a source checkout. Word-level lyric timings also come from a source checkout.
  • Live stems, separated in real time during playback, are not built.
  • Paid features. There are none.
  • In-app import from Serato, Traktor and djay. First-run import covers rekordbox and music folders; the other adapters run from the command line.
ADeck A / Released

The April library toolchain.

Five tagged releases on Fri 17 Apr 2026 (rc1, rc2, rc3, 1.0.0 and 1.0.1); CHANGELOG.md has entries for four of them, summarized below with the RELEASE-NOTES files. These are the substrate the performance rig is built on.

  1. Patch release: safety rails and robustness Post-v1.0 safety rails, robustness fixes, refactors and documentation, from about 30 merged pull requests. Self-guards against in-place writes in the plan applier and the djay playlist writer, a djay write-path contract, start-up validation of TSAF constants, and 76 new regression tests. The voice daemon now degrades cleanly when its audio package is missing.
  2. Stable v1.0 of the library toolchain Rolls up the rc3 line plus final adversarial fixes: the rekordbox matcher, verify-in-transaction on playlist apply, state-writer rollback, Serato subcrate and cue preservation, and three security red-team fixes. The GPL tag library mutagen moved to an opt-in extra so the Apache-2.0 package stays clean. Measured at the cut: 2251 tests passing, 51 of 53 v1 requirements shipped.
  3. Release candidate 2 Fixed the wheel and sdist build, finished Serato cue writing, added export, import and conformance to the open-dj tool, authored the remaining conformance fixtures, and scaffolded the docs site.
  4. Release candidate 1 The first cut of the toolchain: rekordbox against filesystem reconciliation, the six-rail safety pattern every later write path inherits, two-way sync between rekordbox and djay (playlists, cues, loops, beat grids, analysis, ratings), the shared state layer with stable ids and provenance, smart playlists, Spotify import, USB sync, track pairings and the first web UI.
A / Parity
Beyond / B { type: 'crossfader', value: 0.50 }