A+BSupported hardware

Hardware

What Open DJ 1.0 alpha has been used with, and how far each piece has been checked. Deck A is what the Mac app does today and which controllers and audio devices have been seen working; Deck B is the USB export targets and the controller work that needs a source checkout.

ADeck A / The Mac app

Mac app or source checkout.

The Mac app is macOS on Apple silicon only. Some hardware works in it; some needs Open DJ running from a source checkout in Chrome or Edge.

The Mac app cannot use a MIDI controller.

The 1.0 alpha app draws its window with macOS's own web view (Tauri and WKWebView), which has no WebMIDI, so its MIDI panel says MIDI is not supported there and never asks for access. The audio engine can read MIDI by itself, but the engine shipped inside the app is built without that feature. Controllers work when Open DJ runs from a source checkout in Chrome or Edge. The source is planned to open on Mon 5 Oct 2026; see building from source. Moving the app to an Electron shell, which has Web MIDI, is a v1.1 plan (open PR #3867), not this build; see the roadmap.

HardwareMac app, 1.0 alphaSource checkout in Chrome or Edge
MIDI controllers Not in the app Four mapped controllers See the tables below.
Main audio output macOS default output Choose the device in macOS Sound settings. The app's own output pickers do not work in this build yet. Pick main and cue devices
Headphone cue on a second device Not yet Built, waiting for a test on a Mac. Until then, cue on the one output: practice mode or split-cable mode. Works
USB stick, import Import tracks Files stay on the stick. It uses the folder import, so no BPM, key or beatgrid comes from the stick, and tag reading in the packaged app is not yet verified (PARITY-15 is open). Import tracks, with tags
USB stick, export for Pioneer players Not in the app Command line, untested on players See USB export targets.

CTRL-04, NAE-17, CUEOUT-09, CUEOUT-14, CUEOUT-22, INSTALL-13, CAT-06

ADeck A / Tested live

Tested live.

Tested means someone played a set on it. Each row names the date and the evidence.

ControllerStatusDate and evidence
Pioneer DDJ-400 Played live The project README, edited Sat 15 Aug 2026, records that the rig has been played live on a DDJ-400, run from a source checkout in a browser. A regression test in the source dates a bug found during a DDJ-400 set to Fri 7 Aug 2026, with the DDJ-400 as the audio interface; the place is not recorded. Two decks are mapped; jog wheels, beat sync and effects on the controller are not.
About that set Fri 7 Aug 2026, place not recorded. The date comes from a regression test written after a bug in that set: finished tracks went quiet after a rewind. Where it was played is not in the project's records.

README.md, PARITY-TODO.md, CUEOUT-05

ADeck A / Mapped, not played

Mapped but untested.

These controllers have a map in the source, built from the maker's published MIDI list or a community map. No set played on them is recorded in the README, the parity list or the session notes.

ControllerStatusHow far it has been checked
Pioneer DDJ-FLX4 Mapped, untested in a set Map built from the official AlphaTheta MIDI message list. On Fri 18 Sep 2026 a capture tool listened to a real unit and confirmed 42 MIDI messages against the maker's list, from a sweep of about half the surface; transport, hot cue pads and browse were not swept. 13 of the map's 65 bindings are confirmed on hardware.
Pioneer DDJ-FLX10 Mapped, untested Map built from the official MIDI message list and tested with synthetic messages. Its hardware checklist in the source is unticked.
Reloop Mixtour Mapped, untested Map built from a community Mixxx mapping of Reloop's MIDI map. Tested with synthetic messages; its hardware checklist is unticked. The same map answers to a Mixtour Pro; its extra controls are not bound.

CTRL-01, CTRL-02, CONTROLLER-QA.md

ADeck A / Not supported

Not supported.

What does not work today, in either the Mac app or a source checkout.

WhatStatusWhy
Any MIDI controller in the Mac app Not supported No WebMIDI in macOS's web view, and the shipped engine has no MIDI input.
Controllers without a map Not supported In Chrome or Edge the MIDI panel's log shows every message such a controller sends, but no message runs a command until someone writes a map.
Jog wheels, scratching, effects, sampler Not mapped Left out of every current map on purpose, except that the DDJ-FLX4's Color FX knob drives the channel filter. The controls show up in the log.
Controller screens and meters over HID Not supported Features such as the DDJ-FLX10 jog screens run over an undocumented USB protocol, not MIDI.
Timecode vinyl (DVS) Not supported Not built.
A controller's own headphone jack for cue Not supported Chrome reported a DDJ-400 as a two-channel output, so its headphone pair is out of reach. From a source checkout, pick a second output device for cue. On one output, use practice mode (cue blended into the main output) or split-cable mode (main on the left, cue on the right).
ADeck A / Audio

Audio devices seen working.

Devices Open DJ has been seen playing through, and where the evidence comes from. This is not a compatibility list.

DeviceWhereEvidence
MacBook built-in speakers Mac app The app's audio logs recorded on Wed 9 Sep 2026 show it playing to the built-in speakers on a MacBook.
Bluetooth headphones as the macOS output Mac app A Bluetooth output appears in the same logs. On Wed 2 Sep 2026 a phone call took a pair of Bluetooth headphones and Open DJ, running in a browser, went silent; the Mac app now detects that stall and offers to switch output. Bluetooth on the cue is for auditioning, not beatmatching.
Pioneer DDJ-400 built-in sound card Source checkout in a browser Used as the main output for the Fri 7 Aug 2026 set preparation. Its headphone jack was not reachable for cue (see Not supported).

AUDIOLIVE-01, AUDIO-DEVICE-01, CUEOUT-03

BDeck B / USB export

USB export targets.

The source can write the newer Pioneer library file onto a stick. These players are targets, not yet tested on hardware.

PlayerStatusNotes
CDJ-3000XTarget, not yet tested on hardwareReads OneLibrary.
OPUS-QUADTarget, not yet tested on hardwareReads OneLibrary.
OMNIS-DUOTarget, not yet tested on hardwareReads OneLibrary.
XDJ-AZTarget, not yet tested on hardwareReads OneLibrary.

What the export does

It is a command-line tool in a source checkout. It adds playlists and track details to the OneLibrary file (exportLibrary.db) on a stick that rekordbox has already exported. It does not write the older Device Library file (export.pdb), the analysis folder or the audio, so it does not make a gig stick on its own.

Players that read only the Device Library, such as the CDJ-3000 and XDJ-XZ, are not targets of this path.

Why it refuses by default

Writing to a stick is behind the same gate as writing to rekordbox. In a source checkout it refuses unless MDT_REKORDBOX_WRITEBACK_ENABLED=1 is set. The Mac app clears that setting before it starts its engine, so the app cannot write to a stick at all. See the rekordbox migration notes.

CAT-06, SYNC-ONEWAY-01, INSTALL-13

BDeck B / In the source

Controller work in the source.

Built and tested in the source, not in the Mac app build.

MIDI in the audio engine

The Rust audio engine can open a mapped controller itself with odj-audio serve --midi, using the same maps as the web UI. It needs a build with the midi feature. The engine inside the Mac app is built with the device feature only and answers that it has no MIDI input.

Checking a map against a real controller

A capture tool, tools/controller-probe/capture.py, listens to a controller through CoreMIDI, walks its controls one at a time and grades them against the expected map. It recorded the DDJ-FLX4 round on Fri 18 Sep 2026 in its free-listening sniff mode.

NAE-17, CTRL-02

A / Parity
Beyond / B { type: 'crossfader', value: 0.50 }