Skip to content

feat(devices): add Reloop Digital Jockey 2 Master Edition (200c:1009) - #80

Open
julled wants to merge 2 commits into
mischa85:mainfrom
julled:reloop-digital-jockey-2-me
Open

feat(devices): add Reloop Digital Jockey 2 Master Edition (200c:1009)#80
julled wants to merge 2 commits into
mischa85:mainfrom
julled:reloop-digital-jockey-2-me

Conversation

@julled

@julled julled commented Aug 22, 2026

Copy link
Copy Markdown

Idea

You can get these controllers for quite low money and get lot of bang for the buck for these, but there was only a driver for win/mac. So i thought with nowadays LLM capabilites it should be possible to create one. Thanks to the great prior work by @mischa85 and some back and forth in claude code it worked quite fast to get something working.

Driver

Ploytec bulk device, 6 in / 4 out, 24-bit, 44.1 kHz. Verified on hardware: audio playback and capture, MIDI input, and LED output.

Self-contained in devices/reloop_dj2.c so no existing device path changes. It reuses the shared protocol helpers and bit-interleaved codec read-only; core changes are registration only.

Device specifics found by reverse engineering the vendor Windows driver (rldj2meu.sys) and confirming against hardware:

  • 44.1 kHz only. findInterfacesInConfig hardcodes 0xAC44 for every 200c:1009 branch; the sibling 200c:1005 is the model that gets 96 kHz. Driving this DAC at 96 kHz audibly distorts playback.

  • Bulk output uses all 8 sub-packets of the 4096-byte packet. Note that the shared ploytec_bulk_subpackets[] table describes only the first 4 (2048 bytes) while ploytec_process_out_bulk() reports PLOYTEC_FRAMES_PER_PKT (80) frames consumed, so half of every packet's audio is dropped. That looks like it affects the Xone devices too; left untouched here as it could not be tested on that hardware. See .claude/re/open_questions.md.

  • MIDI output must carry an explicit status byte. The firmware ignores messages using MIDI running status, which the ALSA sequencer bridge emits by default, so MIDI input works while no LED ever lights. Messages are reassembled with the status byte restored.

Open PRs

-Mapping: mixxxdj/mixxx#16929
-Manual: mixxxdj/manual#917

Tested it under manjaro with mixxx 2.5.6 with existing Reloop Digital Jockey 2 Interface Edition mapping, which uses same midi cc messages.

Ploytec bulk device, 6 in / 4 out, 24-bit, 44.1 kHz. Verified on
hardware: audio playback and capture, MIDI input, and LED output.

Self-contained in devices/reloop_dj2.c so no existing device path
changes. It reuses the shared protocol helpers and bit-interleaved
codec read-only; core changes are registration only.

Device specifics found by reverse engineering the vendor Windows
driver (rldj2meu.sys) and confirming against hardware:

- 44.1 kHz only. findInterfacesInConfig hardcodes 0xAC44 for every
  200c:1009 branch; the sibling 200c:1005 is the model that gets
  96 kHz. Driving this DAC at 96 kHz audibly distorts playback.

- Bulk output uses all 8 sub-packets of the 4096-byte packet.
  Note that the shared ploytec_bulk_subpackets[] table describes
  only the first 4 (2048 bytes) while ploytec_process_out_bulk()
  reports PLOYTEC_FRAMES_PER_PKT (80) frames consumed, so half of
  every packet's audio is dropped. That looks like it affects the
  Xone devices too; left untouched here as it could not be tested
  on that hardware. See .claude/re/open_questions.md.

- MIDI output must carry an explicit status byte. The firmware
  ignores messages using MIDI running status, which the ALSA
  sequencer bridge emits by default, so MIDI input works while no
  LED ever lights. Messages are reassembled with the status byte
  restored.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BASiuKMU5aCZGGKJYU8yXS
Also adds Wizard 4, which was already registered in ozzy_core.c's
device table but missing from this list.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BASiuKMU5aCZGGKJYU8yXS
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant