RiffMIDI Guitar Controller
Internal Wiring

Project information

  • Date: July 24 – August 24, 2024
  • Language: C++
  • Libraries: Control Surface
  • Hardware: Arduino Mega 2560, Rockband Guitar Controller
  • Software: Arduino IDE
  • GitHub: zkarim28/RiffMIDI
  • Demo: YouTube
C++ Arduino MIDI Hardware Hacking Music Embedded

Summary

RiffMIDI transforms a Rockband guitar controller into a fully functional MIDI controller. The project uses an Arduino Mega 2560 to interface with the guitar's fret buttons, strumbar, whammy bar, and tilt sensor — translating physical inputs into standard MIDI messages that any DAW or virtual instrument can receive.

Hardware Hacking

The Rockband guitar uses a proprietary USB protocol that no standard MIDI host understands. To repurpose it, the original PCB's output lines were reverse-engineered by probing each button's signal line, then connected directly to the Arduino Mega's GPIO pins. The whammy bar uses an analog potentiometer already on the board, read via ADC. The tilt/accelerometer sensor was also retained and mapped to pitch bend or modulation.

Firmware

The firmware is built on the Control Surface C++ library, which abstracts MIDI message construction and USB-MIDI HID enumeration. Each button maps to a configurable MIDI note or CC message. The strumbar acts as a note trigger (NoteOn on downstrum, NoteOff on release), while fret buttons determine the pitch — mimicking an expressive one-handed instrument anyone can pick up.