Introduction: Convert Rockband Controller to MIDI Drums

Picture of Convert Rockband Controller to MIDI Drums

Hey! Today I'm going to show you how to convert a Rock band or Guitar Hero drum controller into a real MIDI drum set that can interface with digital audio workstations like Ableton Live, FL Studio, Pro Tools, etc.

Or you can simply use it to play DTXMania (DrumMania)!

Step 1: Watch the Video!

Click here to view on YouTube

Check out this video to see the drum set working as a MIDI controller!

It is also recommended if you'd like to know the inner workings of the Arduino code, and want a more detailed explanation of the circuit.

If you'd like to just get it done, then read on!

Step 2: What You'll Need

Picture of What You'll Need

We're going to need an Arduino.
I chose to use the Arduino UNO because I only needed 6 analog inputs but if you have more than 6 piezo sensors, then you can go with the Arduino Mega which has 16 analog inputs.

We'll also need:

  • 1 proto board
  • 1MΩ resistor for every drumpad
  • 1 220Ω for the MIDI port
  • 1 MIDI port
  • Male pin headers

Where to buy

Soldering gear:

Test gear:

Step 3: What I'll Be Using

Picture of What I'll Be Using

I'll be using the Guitar Hero World Tour controller for this Instructable.

It's got 3 drum pads, 2 cymbal pads, and a pedal. On the back panel, there's even 2 stereo 3.5mm audio jacks - one of which connects the bass pedal and the other we can save for any further modifications to the drumset.

Also, this set comes with a MIDI input port. Which is perfect, because we'll just save a MIDI jack and rewire this port internally and turn it into a MIDI output port.

Step 4: Open Up the Controller

Picture of Open Up the Controller

After you take out the screws on the back and unhook the controller dock, we can lift the back plate, and access the piezos.

You can see that the piezos are plugged in directly to the mainboard. The other board on the top just holds the back panel, and all the inputs of the back panel are plugged into the main board directly as well.

We'll just unscrew the main board, and replace it with our Arduino.

Step 5: Create a Shield for the Arduino

Picture of Create a Shield for the Arduino

The first image here explains how our piezos need to be hooked up to the Arduino.

Then we'll have make a shield for the Arduino where we can plug in the piezos from the drum set into.

The second image is the schematic of the shield on a protoboard.

First we add some pin headers on the board to match the pins of the arduino, so that we can snap the proto board on top like a shield.

Then we'll take our resistors and connect it to a common ground.

Then we take our pin headers, break them into twos, and solder one end of each of the these to the other end of the resistors. Then we connect the other pins of the headers to ground as well. Now we can just plug our piezos directly to these pin headers.

We'll also add one more pin header for the MIDI port, as drawn in the schematic.

Step 6: Back Panel Modification (Guitar Hero Controller Only)

Picture of Back Panel Modification (Guitar Hero Controller Only)

This step is for Guitar Hero World Tour controllers only -

Since we're reusing the MIDI port on the back panel of this controller,

We'll need to make a slight modification to the back panel board. By adding a jumper between the two pins pictured above, we can ground the middle pin of the MIDI port which would otherwise be missing for a MIDI output port. We can then plug the last four pins of the cable ribbon directly into our proto board.

Step 7: Install the Arduino Code

Picture of Install the Arduino Code

Download the full Arduino source code here:

If you're using the Guitar Hero World Tour controller, the default code will work out of the box.

Otherwise, you'll need to make adjustments to the definitions at the top of the code as you see fit to your drum set.

If you'd like a detailed explanation of how the program works, then check the the video from step 1!

Step 8: Snap It in and Close It Up!

Picture of Snap It in and Close It Up!

Snap our new shield onto the Arduino, then plug in all the piezos into the pin headers.

I also added some hot glue to the solder joints to prevent it from breaking off in the future from all the drum hits.

Then make sure the wires are secured by taping them down with scotch tape, and close up the unit!

Step 9: Give It a Test!

Picture of Give It a Test!

Fire up a digital audio workstation like FL Studio and give it a go.

That's all there is to it!

If you liked this instructable, then perhaps you'll like some of my other projects!

You can check them out at my YouTube Channel.



toateot (author)2017-07-13

For the Guitar Hero set...

Does the MIDI message travel through the Uno USB?

Or does the MIDI message still travel through the MIDI port? If this is the case then I will need a MIDI to USB converter cable for a computer connection?

5ki11Zz (author)toateot2017-11-21

i dont know if this question is still up to date, but for future people having the same qestion: you will need an extra midi to usb cable, the ardunio cable will be used just for power, not midi ^^

MusaM14 (author)2017-09-09

hello everyone. y managed to make the conversion from a rockband drum set, but 1 problem i have is that i cant figure out how to add digital inputs for the pedal and eventually a cymball chocker. so i would appreciate any help taht you can provide.

and also thank you for the tutorial and the code

Maarkaus (author)2017-07-16

So I have been given a set of these drums, and I happen to have an Arduino mega.

I would very much like to do this, but have 2 questions first.

1. How do you connect this to the computer? Directly with USB to USB from the Arduino? or with the midi port and a USB adapter? If its by adapter can someone recommend one? I dont want to fry a USB port.

Second, how is it powered? By Wall wart or USB? I suspect Wall wart, but its not covered here.

I will look around the internets to see if I can find the answer. If I do I will post, but so far no success.

If anyone knows, please help! thank you

PanD11 made it! (author)2017-05-07

Thanks. Nice project works great on windows with loopmidi and hairless. If you get extra sounds make sure the midi mapping of the program you use is correct and matches the midi notes section of the code (depends on which software or vst you use)

BjörnA9 made it! (author)2017-04-06


This was so fun to make! We bought an old xbox 360, a bunch of games and the drums for $40 :-) great value!

The drums we got was the version without cymbals. and it turned out that the kick was not a piezo... So now I'm adding that, also great fun!

The biggest problem we had was the MIDI notes, starting from 70 -> really didnt work at all with Garageband on my mac. (and with _NO_ experience with Midi, that took a long time to figure...)

Thanks again!

DevonR10 (author)BjörnA92017-05-06

Did you ever get the kick working? I have the exact same Xbox 360 version and am working on converting it, but I'm not really much of a coder myself. If you've got it working, I'd love it if you could share your code!

РомаС4 (author)2017-04-29

Help me guys (
I've done everything. Everything works. But there are always some extra sounds

HarshanaH (author)2017-04-17

How to make 8 pads for using arduino uno ?

LuisL10 made it! (author)2015-08-10

Thank you for this awesome project! It definitely works!

I think that my piezos are too sensitive. Even if a give just a little touch in the drum pad, the MIDI velocity goes close to the maximum (127). So I'm wondering if it's possible to rescale the MIDI velocity, so that the velocity goes to the maximum only when I hit hard the drum pad.

Is it possible?

SamM280 (author)LuisL102017-03-22

At the top of the recordNewPeak function (about line 167) I added the following line -

newPeak = newPeak / 5;

You could probably just do / 4 .

I am sure there is a better way to do it but that is what I did.

SamM280 (author)2017-03-21

Hi, thanks for making this, I wanted to reuse my old GH drums module to add a few triggers to my new Alesis Crimson EKit and your article was perfect and I love DIY projects. One this is that it was not clear that you need to wire each of the pin headers into each of the analog inputs of the Arduino, you should modify the shield diagram in step 5 to show this as it took me some time to realise and I would have laid out my board differently had I known before hand. I attach a couple of photos of my proto-board. Couple of problems I am having. 1. Output range from hitting pads is as high as 2100 or so and so even just a little hit maxes out the volume, I added a line of code to divide the output by 10 to bring it within the 1-256 midi range and get much better volume control. 2. For some reason when I hit one of the pads (seems to be dependent on which are plugged in) then one of the pads triggers two notes (the others are fine, just one pad that this happens on but not always the same one so it is not a pad issue), I checked my wiring and it all seemed to be okay, no shorting between lines, any ideas? as I was only using the pads not the cymbals I just put a bit of code to limit the signals that could be transmitted and that worked but it is just a bodge. 3. I get a huge variation in volume between the side and center of the pad, is this normal (GHWT kit), wondering if I can compensate in software some how?

SamM280 (author)SamM2802017-03-22

I desoldered everything and rebuilt it using the proto-boards built in gnd and 5v rails (area on the bottom right of the first picture) which matched really nicely with this project and meant the midi interface cable is now long enough, I inserted the 220 Ohm resistor inline in the midi interface cable for simplicity. I am not getting the extra signals I was getting so I am guessing my first attempt was some bad grounding or something. I added some code to divide the source signal by 5 as it was never seeing the soft hits. All good now.

JasbatDrummer (author)2017-02-26

Hi and thanks for this great guide!

I'm a pro drummer and wanna use a Rockband unit found in the streets as a "desktop" MIDI controller for production and essentially, banging' away when my client's not looking xD

So here's the deal : My unit comes with a "single" jack in the back, that is I believe splitter inside into 4 cables, each of them connected to one of the pad. At the other end of this "Über-jack" is a USB. This is even cooler than MIDI port for me, cause that means it's USB-MIDI, and I wanna use it with my laptop!

When I plug the unit in, it is effectively powered (I see a relight in the controller). What would I have to do to adapt your guide to USB-MIDI (one USB cable) instead or MIDI to USB or MIDI to MIDI?

I'm new to Arduino but really excited about this project!

MaxS170 (author)2017-01-18

Cheers on the excellent guide, was a fun to watch as it is informative. I am new to coding and was hoping you could help me figure out how to get a Hi-hat pedal to change which note fired for the Hi-hat. Let's say it's an FSR-based pedal and a threshold of 220 would be a nice place for the note to change. Any help would be greatly appreciated.

MaxS170 (author)MaxS1702017-01-20

Nevermind! I figured it out on my own. Problem was that I was putting my code in the wrong function. Thanks again for the rad tutorial and sweet, sweet code.

StN2 (author)2015-10-12

As much as i'm still new to this, i would like to assume that an arduino or raspberry pi could be the answer for a problem i have with Rock Band 4(Xbox One). I would like to add a midi port to connect the rock band 4 drums to my Alesis DM5 so i can still use my e-drum kit for the game. Can this be done with the arduino?

This is the brain front and back.

electronic drumkid (author)StN22016-10-05

I have the same- DM5 with Rockband drumkit. I just taped contact mics to the pads and plugged them into the back of the DM5. works great

Wickedweed (author)StN22015-12-21

hi. it will work if you build the arduino circuit in parallel with the existing circuit cos the arduino inputs have high impedance. to be safe, you can build switches (or using relays) to switch the piezo signals between the arduino and the xbox pcb.

AndrewM437 (author)2016-09-22

plz explain this i wanna connect this without midi cable

just get the usb adapter- tattiebogle . net has a driver you can download.

electronic drumkid (author)2016-10-05

Much easier to just google 'rockband drumkit to usb adapter'. No need to do any wiring or open the housing. Just plug it in USB. Then there's a software hack that lets you trigger sounds in PureData or other software - you can get that from tattiebogle (works great!) I got it to work with both wired AND wireless xbox360 drumkits.

AndrewM437 (author)2016-09-22

helloe can i connect this without midi cable?

JoelG65 (author)2016-07-15

Hi Great project.! How did you connect the drums to computer.. i bought midi to usb cable but the one i bought has midi in and midi out and usb..I am done with soldering and everything. I just dont know how to connect it to computer. Anyone help me please

Marjoleinv2 (author)2016-02-17

Hello! I'm very new to this and I have a 'guitar hero'-ish thing that i would like to convert to a midi controller. It looks a lot different but should be the same in essence i think. I've added some pictures of it.

Is it also possible with this one? I foresee the following problems:

- the drumpads have no screws. It doesn't seem like I can open the backside at all.

- all drumpads have 'jack' ends (is it how that's called?) and are plugged in, into a box.

- I've tried to open the box, by removing the screws, but when i try to open it, it seems to stick somewhere in the middle. Am I gonne ruin the whole thing if I use 'violence' to open it?

Marjoleinv2 (author)Marjoleinv22016-02-17

In the meantime I've found the missing screw ;), so i could open the mysterious box. I've addes pictures, so you can see what's inside. And I've found out: it is possible to open up the seperate drumpads. Is your method also possible with this drumset?

Marjoleinv2 (author)Marjoleinv22016-02-17

And here some photo's of the midiport attachment

I think if you can dismount the board that has the 3.5mm jacks that come from each drum, you can get the signal from those jacks. It should be something like the one that comes from de pedal piezo in the images above

wikiti (author)2015-07-29

You forget to mention the input analog connections to the diagram of the step 5 (2nd image). I guess it should be connected by wiring the middle point of the pinheaders (where the piezos are connected) and the 1M ohm resistors to female pinheaders of the analog inputs.

BoxOfSnoo (author)2015-07-14

I have all this stuff on hand, I was going to do it myself, I would have missed a few important parts though. I'm wondering if I can attach the piezos to both the existing drum controller and the arduino? I still haven't finished the games yet (I know)

BoxOfSnoo (author)BoxOfSnoo2015-07-23

Answering my own question... It seems like the existing MIDI in port can be used for plugging in proper drums, sooooo... I am going to try plugging the piezo triggers in to my board, and wire up a separate MIDI out (as on the breadboard). Then I can leave in the existing controller and jumper my MIDI out into the existing MIDI in and hopefully it should work!

24Eng (author)2015-07-10

Awesome project! The Arduinos which use native USB can even do this without the old MIDI port so you can use it as MIDI over USB.

Ondes (author)24Eng2015-07-14

Yes, it would be useful if you explain how to send MIDI over USB, super project!

jayfehr (author)Ondes2015-07-23

A teensy can send midi. It may be the better option. The code just be pretty much compatable to. May need to tweak the pin numbers.

MackenzieR1 (author)2015-07-20

Great instructable! How do you make the software like fl studio recognize your midi controller and its drum pads?

MackenzieR1 (author)2015-07-20

Keyb (author)2015-07-15

Cool!!! I will definitely make it!! Would it be possible to add another pedal (like the kick drum pedal) to change the midi note of the yellow hi-hat? This to have both the closed and the open hi-hat sound. What changes should be made on the Arduino code?

BoxOfSnoo (author)Keyb2015-07-16

Possible, definitely. The simplest would be to have a normally open switch hooked up to another input on the Arduino. Check every loop to see if that input is high (closed) and if so set a global variable. When you're going to play the note, include in the test for the hi-hat another test for the position switch.

The next level would be to have a piezo to allow hi-hat clamping without a hit - i.e. using another bass pedal for that purpose. You'd need to add the above N/O switch so you can keep the pedal down... This would obviously be more challenging.

Keyb (author)BoxOfSnoo2015-07-17

Thanks for the hint. I'll give it a try!

mkreidler (author)2015-07-14

What else would be required in order to plug this into a looper pedal/pa in order to play live? Would I just need a midi interface for a laptop?

JuliaLabs (author)2015-07-13

Wow, thank you!! Great project!!

FredyE (author)2015-07-11

I´ve waited years for this. Thank you so much for making this instructable! I tried to do this with limited basic knowledge of electronics and i failed hahahah. But now you make this and with the same Drums that i have.

You really don´t know how much this help me. I make an account just to say THANK YOU.

Greetings from Guatemala.

FredyE (author)2015-07-11

padbravo (author)2015-07-11

Great video production: great narration, clear voice. well explained, direct to the point

Coolloom (author)2015-07-11


amy_rotfl (author)2015-07-10

Omg thank you. I played the drums in my school but didn't get a chance to master it, but now I can. Thank you so much

About This Instructable




Bio: === === ===
More by EvanKale:Pokemon Card DoorGuitar Cajon Mod (Internal Snare)Ratchet Knob (Unidirectional mechanism)
Add instructable to: