Skip to content

Releases: mormegil6/reaper-dm2000-csurf

v0.9 - FLIP + 2x40 display overlays

Choose a tag to compare

@mormegil6 mormegil6 released this 26 Jun 17:03

FLIP + a much richer display.

  • FLIP (FADER MODE button) - while the channel encoders ride a send (an AUX SELECT is active), FLIP swaps them: the motorized faders ride the selected send (with the calibrated taper - ride sends on real faders) and the encoders + rings ride volume. Press FADER MODE to toggle; the FADER / AUX-MTRX LED tracks it. Knob-press and double-tap reset the send to 0 dB; the strip shows the send dB. [fader] flip.
  • 2x40 display overlays - the big REMOTE display now momentarily flashes context, then reverts to the FX view: full track name on SEL (vs the 4-char strip), FX name + bank range + the 4 param names on FX-slot / param-page change and the window toggle, scene / marker name on recall, and the send destination on AUX SELECT. Each [display]-configurable.
  • Polish / accented track names are transliterated to ASCII on the scribbles ( l/o/z/e...), so they show meaningfully instead of being dropped.
  • Surround panner fixes - dynamics-knob CC ordering, anti-oscillation accumulator, live SEL readout from the knobs.

Also ships extensive protocol documentation: the canonical HUI spec mirrored with credit (doc/hui-spec/), a coverage analysis, and a hardware-captured map of the DM2000's native control-room / monitor / stereo-master SysEx (doc/dm2000-native-sysex.md).

Install (macOS): download reaper_csurf_dm2000_macos-v0.9.dylib, rename to reaper_csurf_dm2000.dylib, copy to ~/Library/Application Support/REAPER/UserPlugins/. Universal binary (arm64 + x86_64).

Install (Windows): download reaper_csurf_dm2000_x64-v0.9.dll, rename to reaper_csurf_dm2000_x64.dll, copy to %APPDATA%\REAPER\UserPlugins\.

dm2000_keys.ini holds the action mappings + the new [fader] / [display] options - copy it to your REAPER resource folder.

v0.8 - display & feedback layer

Choose a tag to compare

@mormegil6 mormegil6 released this 18 Jun 18:23

Display & Feedback layer - the master section and channel feedback come alive.

  • Master-section readouts: SELECT ASSIGN (Pan / SndA-E) and CURSOR MODE (NAVIGATION / ZOOM), recovered by sniffing Pro Tools.
  • Counter-mode LEDs (TIME CODE / FEET / BEATS) follow REAPER's timecode format.
  • FX parameter editor: the four EFFECTS/PLUG-INS SEL rings show the visible parameters; the EFFECTS DISPLAY button toggles auto-floating the plug-in window.
  • V-pot ring-blink on channels riding a send (AUX mode).
  • AUTO key cycles automation mode (Off-Read-Touch-Latch-Write), colour indicator blinks in Latch; double-tap a fader snaps it to 0 dB.
  • Startup splash and clean LED/display shutdown.

Also ships reverse-engineering tooling (tools/: hui_send, hui_bridge, hui_deskmon) and extensive DESIGN.md protocol findings.

Install (Windows): download reaper_csurf_dm2000_x64-v0.8.dll, rename to reaper_csurf_dm2000_x64.dll, copy to %APPDATA%\REAPER\UserPlugins\.

Install (macOS): download reaper_csurf_dm2000_macos-v0.8.dylib, rename to reaper_csurf_dm2000.dylib, copy to ~/Library/Application Support/REAPER/UserPlugins/. Universal binary (arm64 + x86_64).

dm2000_keys.ini holds the action mappings - copy it to your REAPER resource folder.

v0.7 - scene recall (GENERAL port)

Choose a tag to compare

@mormegil6 mormegil6 released this 16 Jun 14:36

Scene recall (GENERAL port) - NEW in v0.7. Optional, bidirectional DM2000 scene recall over a dedicated GENERAL Rx/Tx port (a separate, unused USB port - the console won't share a DAW port number with GENERAL), selected via the config dialog.

  • Receive (default on): recalling a scene on the desk jumps REAPER to the marker numbered the same.
  • Send (default off): !SCENE n markers recall scene n on the desk; #SCENE n scrolls the display only. The number is the first token after the prefix, trailing text is a free label (!SCENE 4 Chorus). Forward crossings during playback, owning-scene resync on play-start / loop / seek, optional follow_cursor while stopped.

Configured via the new [scene] section of dm2000_keys.ini. Builds on v0.6 (UDK, surround pan, FX parameter editor).

Installation:

Windows: copy reaper_csurf_dm2000_x64-v0.7.dll to %APPDATA%\REAPER\UserPlugins\

macOS: copy reaper_csurf_dm2000_macos-v0.7.dylib (universal arm64 + x86_64) to ~/Library/Application Support/REAPER/UserPlugins/

Copy dm2000_keys.ini to %APPDATA%\REAPER\ (Windows) or ~/Library/Application Support/REAPER/ (macOS).

Restart REAPER after copying.

v0.6 - UDK, surround pan, FX editor

Choose a tag to compare

@mormegil6 mormegil6 released this 16 Jun 09:43

USER DEFINED KEYS - all 16 UDK buttons fire configurable REAPER actions via the [udk] section of dm2000_keys.ini (key1..key16 -> action IDs). All button zones hardware-verified.

Surround pan (MCS PANNER, port 4) - the DYNAMICS knobs and the surround joystick drive a surround plugin on the selected track, configured via [surround] (ships targeting ReaSurroundPan; never auto-inserts it). The ROUTING buttons 1-8 select which object/input the controls drive - with LED feedback on the selected button (following the selected track) and the object count auto-detected from the plugin - and Direct shifts the bank of 8.

FX parameter editor (port 1) - the four parameter knobs and the page arrows below the display edit any FX on the selected track: knobs nudge the current page of 4 params, arrows page through them (wrapping), and F1-F4 switch FX slot / bypass. Always-on.

Faster LED counter - the timecode display refreshes ~30 Hz (configurable via [counter]) for smooth SMPTE frame counting.

Installation:

Windows: copy reaper_csurf_dm2000_x64-v0.6.dll to %APPDATA%\REAPER\UserPlugins\

macOS: copy reaper_csurf_dm2000_macos-v0.6.dylib (universal arm64 + x86_64) to ~/Library/Application Support/REAPER/UserPlugins/

Copy dm2000_keys.ini to %APPDATA%\REAPER\ (Windows) or ~/Library/Application Support/REAPER/ (macOS).

Restart REAPER after copying.

v0.5

Choose a tag to compare

@mormegil6 mormegil6 released this 15 Jun 14:28

Locate section fully INI-configurable - all 18 buttons (RTZ, END, ONLINE, LOOP, QUICK PUNCH, AUDITION, PRE, IN, OUT, POST, LM1-LM8) read their REAPER action IDs from [locate] in dm2000_keys.ini. RTZ/END default to CSurf_GoStart/GoEnd API; all other buttons default to no-op until the ini is installed. See doc/dm2000_keys_guide.md.

HUI LED counter display - protocol decoded from Pro Tools loopMIDI capture, hardware-verified 2026-06-15. Follows REAPER transport time format (right-click transport to switch between SMPTE, minutes:seconds, measures:beats, etc.).

Fix: locate buttons no longer have hardcoded defaults; post-build step copies DLL under correct filename.

Installation:

Windows: copy reaper_csurf_dm2000_x64-v0.5.dll to %APPDATA%\REAPER\UserPlugins\

macOS: copy reaper_csurf_dm2000_macos-v0.5.dylib to ~/Library/Application Support/REAPER/UserPlugins/

Copy dm2000_keys.ini to %APPDATA%\REAPER\ (Windows) or ~/Library/Application Support/REAPER/ (macOS).

Restart REAPER after copying.

v0.4 - LM7/LM8, ENTER bank-scroll, AUTO fader reset, scrub speed

Choose a tag to compare

@mormegil6 mormegil6 released this 15 Jun 11:05

Changes

  • LOCATE MEMORY 7 and 8 now work (zone 0x15 sw0/sw1, hw-captured 2026-06-15)
  • ENTER cycles through 3 cursor arrow modes: scroll, zoom, and bank-scroll (left/right shift the fader bank by one channel)
  • AUTO button per channel (zone 0-7 sw4) resets that channel fader to 0 dB
  • Scrub wheel speed increased 10x (was too slow to be usable)
  • Config dialog: second clickable link to dm2000_keys.ini.example on GitHub
  • Dialog footer updated to v0.4

Installation:

Windows: copy `reaper_csurf_dm2000_x64-v0.4.dll` to `%APPDATA%\REAPER\UserPlugins\`

macOS: copy `reaper_csurf_dm2000_macos-v0.4.dylib` to `~/Library/Application Support/REAPER/UserPlugins/`

Restart REAPER after copying.

v0.3

Choose a tag to compare

@mormegil6 mormegil6 released this 15 Jun 10:22

Changes

  • ENTER (zone 0x14 sw0): toggles cursor arrow keys between scroll and zoom mode
  • QUICK PUNCH (zone 0x10 sw3): insert marker at edit cursor
  • REW/FF: auto-repeat when held (400 ms delay, 80 ms interval)
  • Fader taper: 11-point post-calibration table (built-in calibration utility)
  • BACK/FORWARD buttons: undo/redo
  • doc/dm2000_keys.ini.example: User Defined Keys mapping template

Installation:

Windows: copy `reaper_csurf_dm2000_x64-v0.3.dll` to `%APPDATA%\REAPER\UserPlugins\`

macOS: copy `reaper_csurf_dm2000_macos-v0.3.dylib` to `~/Library/Application Support/REAPER/UserPlugins/`

Restart REAPER after copying.

v0.2 - macOS port, transport extensions, scene recall

Choose a tag to compare

@mormegil6 mormegil6 released this 13 Jun 15:58

macOS universal binary (arm64 + x86_64) - loads in REAPER, hardware verification pending.

Added since v0.1:

  • macOS port: universal dylib via SWELL, build instructions in MACOS_BUILD.md
  • Transport RTZ, END, LOOP buttons wired (switch positions unverified - verify with MIDI-OX)
  • LOOP LED feedback via SetRepeatState
  • Program Change receive: DM2000 scene recall jumps REAPER to matching marker (scenes 1-9; GENERAL port must be set to a DAW USB port on the console)
  • LED counter display: timecode sent every 100ms as HUI SysEx (unverified on hardware)
  • Config dialog: wider fields, editable keys-file path, clickable website link

Installation:

Windows: copy reaper_csurf_dm2000_x64-v0.2.dll to %APPDATA%\REAPER\UserPlugins\

macOS: copy reaper_csurf_dm2000_macos-v0.2.dylib to ~/Library/Application Support/REAPER/UserPlugins/

Restart REAPER after copying.

v0.1 - HUI layers 1+2

Choose a tag to compare

@mormegil6 mormegil6 released this 13 Jun 15:58

First functional release: HUI core (faders, mute/solo/rec-arm, transport, bank switching) and channel strip feedback (pan, VU meters, 4-char scribble strips, jog wheel).

Installation: copy reaper_csurf_dm2000_x64-v0.1.dll to %APPDATA%\REAPER\UserPlugins\ and restart REAPER.