Changelog
What is new in each release, newest first. The Open DJ 1.0 alpha entry is written for this site; at 487fa677d7 the repository's CHANGELOG.md does not have it yet. The April releases below are summarized from that file and belong to the library toolchain the app is built on.
Open DJ 1.0 alpha, planned for Mon 5 Oct 2026.
The first public release of the desktop app and its four-deck performance rig, to be tagged app-v1.0.0-alpha.1 when it is released.
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, to be tagged. Every item below has a requirement id checked as shipped in .planning/REQUIREMENTS.md. Open requirements are on the Roadmap.
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
opendjcommand line, inside the installed app. AGENT-05. - An
opendj mcpserver in the app payload, with safety rails enforced server-side. AGENT-11.
Desktop app
- A Developer ID signing and notarization pipeline for the dmg exists in the private repository, with its secrets held outside the tree; whether the launch build is signed is listed on the download page when it is posted. 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.
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.
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.
- 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.
-
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
mutagenmoved 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. -
Release candidate 2
Fixed the wheel and sdist build, finished Serato cue writing, added
export,importandconformanceto the open-dj tool, authored the remaining conformance fixtures, and scaffolded the docs site. - 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.