Arduino controlled MIDI and MIDI integration to WS2812

Good evening Arduinoers. I'm hoping someone can see my vision for what I want to achieve and have a friendly conversation with someone who might know more about MIDI than I do.

I have a Roland TD-07 Electronic Drumkit that I have been recording videos with and putting them on YouTube. Recently however I've not been drumming as of late due to having 8 hour hand surgery, so I decided that I would start building Arduino, and I've not stopped since!

From reading multiple pages on the web and feeds on MIDI, from what I understand, that the only Arduino that will run and understand MIDI natively (not sure if that's the right phrase). I know all of them can run MIDI at some point but the LEonardo is certainly the way forward.

I'd like to build 2 projects:

  1. Using a MAX72XX 12 modules display board I want to reproduce the BEAT COUNTER that is used in Logic Pro.
  2. I'd like to put an 8bit WS2812 RGB module inside the drums so that they light up when a particular pad is hit - the skins are of a fine mesh so light can go through it quite effectively.

Who knows about MIDI to this level? I don't personally know anyone who knows to this degree of integration, but I'm hoping that some very smart people can come to my aid.

Lets have a chat!

Best WIshes for the Holiday Season

Kieran.

Hi Kieran.

The best overall way to build both of your projects—the beat counter on MAX7219 displays and the WS2812 LEDs that light up inside each drum pad—is to use a microcontroller that can read USB-MIDI directly from your Roland TD-07. Most Arduinos cannot do this because they are USB devices, not USB hosts, which means they cannot read the drum module’s USB output. The Teensy 4.0 or 4.1 is the simplest and most reliable choice because it includes a USB-Host interface that can receive MIDI directly from the TD-07 without adapters, shields, or 5-pin MIDI converters.

With a Teensy, you connect the Roland to the USB-Host port, and the Teensy receives all MIDI information: note-on messages when each pad is hit, and the MIDI clock messages that allow you to calculate beats, bars, and tempo just like in Logic Pro. The Teensy then drives your MAX7219 display, which can show a simple four-beat counter or a full Logic-style display with bar, beat, subdivision, and tick numbers. At the same time, the Teensy can control WS2812 LEDs inside each drum pad. When a note-on message is received, you simply turn on the LED inside the corresponding drum, optionally adjusting the brightness based on the velocity of the hit or adding animations such as fades or flashes.

This approach uses a single, powerful board to handle USB-MIDI decoding, LED control, and display updates without timing issues or lag. It avoids the limitations of typical Arduino boards, removes the need for extra MIDI hardware, and gives you enough processing power to expand the project later. In short, the easiest and most effective solution is to build everything around a Teensy 4.0 or 4.1, read USB-MIDI directly from the TD-07, and use that data to drive both your display and the LEDs inside the drums. If you want, I can now provide wiring instructions or a starting code example.

1 Like