Releases: mormegil6/reaper-dm2000-csurf
Release list
v0.9 - FLIP + 2x40 display overlays
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
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)
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 nmarkers recall scene n on the desk;#SCENE nscrolls 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, optionalfollow_cursorwhile 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
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
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
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
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
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
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.