The Big Reaper Remote (BRR-1)
A few months ago, I was approached by a rather charismatic individual who mentioned a dream controller of his: a rack-mounted platform for record-arming tracks, with transport and marker controls in Reaper. With experience in the PCB and enclosure fabrication side of things, he only needed assistance with the programming. Now I know this may come as quite the surprise… I eagerly accepted that undertaking.
This post covers the low-down on how I approached the controller’s digital domain.
Human Interface Devices and You
Human Interface Devices (HIDs) are pieces of hardware that utilize a standardized protocol for sending data to computers. They range from keyboards and mice to “alphanumeric displays, bar code readers, volume controls, auxiliary displays, sensors and many others” (Microsoft). But what does this clunky name mean for Reaper users?
Death to MIDI
Well that’s just about it. There’s the answer.
Don’t get me wrong, MIDI protocol is fantastic in many regards, and I will unashamedly admit my eagerness for MIDI 2.0 spec to become the norm. However, building MIDI controllers from scratch is a finnicky process. While Arduinos can utilize serial communication to send MIDI information, that data must then be parsed by the computer through the usage of additional applications like Hairless and LoopMIDI. Arduinos can also communicate direct MIDI messages, but this can also be a pain to work with, even when using supplementary libraries.
GET TO THE POINT
This Reaper controller is just a fancy computer keyboard :)
It utilizes an Arduino Leonardo to send HID compliant keyboard commands/hotkeys. To account for all of the necessary button inputs and their corresponding LEDs, it relies on a multiplexing shield that effectively expands the I/O capabilities of the Arduino.
On top of that, this glorified keyboard is seriously optimized for sending hotkey combinations. For instance, when the user presses multiple buttons simultaneously, hotkey combos are staggered with per-key debounce times (by a factor of milliseconds) so that Reaper can parse input and act appropriately. Think of this like someone smashing “CTRL + ALT + SHIFT + F4”, releasing that, then “WIN + ALT + 0”, releasing, then “CTRL + ALT + P” all within the blink of an eye. You get the point.
And finally…
It’s plug-and-play! The biggest perk of Human Interface Devices is that you just… plug it in and it works. No opening the MIDI preferences menu and pressing “Reset All Devices” and frantically closing-and-reopening Reaper. This controller is just a pretty, rack-mounted computer keyboard that’s thoroughly optimized for sending hotkeys. Check out some of the build pics and videos below, courtesy of my Twitter backlog.
Check out the blue circuit board on the right side of the controller. That’s the multiplexer I mentioned, which allows the Arduino to seamlessly send/receive messages with all of the controller’s hardware!