Guitar Hero drum sets

I recently bought a Band Hero set, because I love music, yet have difficulty motivating myself to play, and rather liked the drumming from trying out Guitar Hero World Tour. There was a major disappointment with some chopped up songs (supposedly for censoring), which I’ll likely write about later.

However, what I wanted to mention today is the sensitivity tuning. It appears the GH drums were always based on actual MIDI drum sets – the kinds used for training without a proper soundproof studio. That meant they use MIDI ports, and include the ability to tune the hit sensitivity. The BH drum set beats out the GHWT set in this regard, as it has MIDI out as well and thus needs no special software to play.

However, the tuning method isn’t documented. This is done all the time with proprietary stuff, but makes no sense. It’s not like you can’t experiment anyway, and documenting the controls (a bunch of channel 16 CCs) would’ve taken half a page of the manual, or equivalent space on, say, the assembly instructions. As the tuning kit was sent out for free when it was introduced (because the WT sets were often so badly tuned it rated as defective), it doesn’t really make sense for greed to motivate this omission either.

Anyhow, the tuning kit provided by RedOctane only works with some versions of Windows (requiring a MIDI interface and .NET 2.0) or some Mac versions (didn’t check closer). The two or three knowledgebase entries describing it alone contain more text than would’ve been needed to describe the protocol (and so does this rant). I eventually managed to combine a simulated Windows machine, a virtual MIDI interface, and a MIDI message monitor to find out what the program sent. The grand total is 8 messages.

Had I known these messages beforehand, I could have used my MIDI keyboard to tune the drumset. No programming, no downloads, and very little effort. What I wound up doing, though, was writing a small script to tune Guitar Hero or Band Hero drums from GNU/Linux. Activision (who host the support site where you find the tuning kit) didn’t want to link this to the knowledgebase, though they did suggest mentioning it in the forum.

Finally, to not come off as a jerk, here’s the actual list of CCs used. They’re all sent on channel 16.

Drum pad sensitivity, low values mean higher sensitivity, values used by program range from 4 to 40: 100=pedal, 102=blue, 103=green, 104=red, 105=yellow, 106=orange.
The settings are saved by sending CC 101 with value 3, then two seconds later CC 119 with value 119. I’m not sure precisely what these commands do, but it wouldn’t be entirely surprising if the first erases EEPROM and the second writes it. If not saved, the settings should revert on the next powerup.