Yamaha DM2000: REAPER Control Surface Plugin
Native REAPER control surface plugin for the Yamaha DM2000. Bidirectional 24-channel HUI with transport, VU meters, scribble strips, and AUTOMIX integration.
v0.1 · Windows x64 · macOS arm64/x86_64 (in progress)
The DM2000 has been a workhorse console in professional studios since 2002, but REAPER integration has always been partial: three instances of the built-in HUI driver, no scribble strips, no meter bridge, no transport LEDs. This plugin provides a single native control surface that handles all 24 channels across the three USB HUI ports simultaneously, adds bidirectional VU metering, channel name display, and AUTOMIX mode integration. It is the first open-source REAPER csurf specifically written for this console. Hardware testing also revealed a fourth HUI port not mentioned in any existing DM2000 documentation or community write-ups.
What works:
- 24-channel bidirectional fader control with touch automation
- Mute, solo, rec-arm, select buttons and LEDs
- Transport (play, stop, record, rewind, forward) with LEDs
- Jog wheel scrub (speed-scaled)
- Pan knob input and ring-LED feedback
- VU meters on channel strips
- 4-char scribble strip names (HUI)
- AUTOMIX mode integration (7 automation modes)
- Bank switching (channel ±1, bank ±24)
Get it
No binary release yet – build from source on Windows:
Prerequisites: Visual Studio 2019 or later (Desktop development with C++ workload), REAPER Extension SDK with the REAPER_EXTENSION_SDK environment variable pointing at it, msbuild on PATH.
git clone https://github.com/mormegil6/reaper-dm2000-csurf
cd reaper-dm2000-csurf
msbuild Builds\VisualStudio2019\reaper_csurf.sln /p:Configuration=Release /p:Platform=x64
The post-build step copies the DLL to %APPDATA%\REAPER\UserPlugins\ automatically. See the README for console setup (Remote Layer, DAW port assignment) and REAPER port configuration.

REAPER control surface configuration — "Yamaha DM2000" selected with the three HUI port inputs.
Fader calibration
The DM2000’s fader taper does not follow a simple law. To align REAPER’s dB scale with the console’s printed marks, every labelled fader position was captured by hand using MIDI-OX – one mark at a time, logged as 14-bit MIDI values – and fitted to a piecewise-linear curve. The result is that ∞, −60, −40, −30, −20, −10, −5, 0, +5, and +10 dBFS on the console’s silk-screened scale map to the correct positions in REAPER, with the physical unity mark landing at 0 dBFS. This is the detail that separates a properly integrated surface from a HUI shim.
Roadmap
- macOS universal binary (arm64 + x86_64)
- LOCATE MEMORY → REAPER markers (console zone SysEx captured; wiring to REAPER actions not yet done)
- USER DEFINED KEYS dispatch (config dialog and INI path field exist; action-dispatch loop not yet written)
- 8-char scribble strip names via Yamaha SysEx (blocked: address space not published by Yamaha; requires Studio Manager traffic capture – see DESIGN.md)
- Surround panner joystick → ReaSurround
- Meter bridge, EQ/dynamics control, scene recall
For issues and feature requests, open a ticket on GitLab or GitHub.