Remember the Rock Band / Guitar Hero MIDI guitar thing I made? I have not fiddled with it much since I presented at Playful 08.
However, since a few people have asked me for it, here’s the current version of the ControllerMate patch which contains two versions; one for Rock Band (Harmonix) Xbox guitars and one for Guitar Hero (Red Octane X-Plorer Controller) Xbox guitars.
You’ll need ControllerMate to use it of course, but more importantly you’ll need the MIDI-enabled version (which means you’ll need a registered copy) but honestly, once I’d tried ControllerMate I knew the MIDI addition was well worth the $15.
Enjoy, and do let me know if you make any interesting modifications.
Things that might help you get started:
- an introduction to the features and how it works
- annotated description of a previous version of the patch
- XBox 360 USB controller driver for OS X
Before I went on holiday, I began to think about getting my Rock Band guitar controller to act as a MIDI instrument in GarageBand. I’m still fiddling with it, and since implementing a couple of extra features, I’m increasingly happy with the results.
The setup in ControllerMate, initially quite straightforward, is gradually becoming fairly hairy. Here’s what it looks like now. Click through to see a bigger, annotated version.
- Sends MIDI notes based on the fret you are holding while strumming up or down. Release the fret to stop the note, exactly as you’d expect in Rock Band or Guitar Hero.
- Pick a major key by holding a fret button and tapping ‘Start’. First fret (green button) + start = C major, second fret = D, etc.
- Hold ‘Back’ while picking a key to make it minor. e.g. 3rd fret + ‘Back’ + ‘Start’ = E minor. Update: in the most recent version, you just hold a fret and hit ‘back’ (rather than ‘back’ + ‘start’ together)
- Additionally hold the next fret up to make it sharp. e.g. 1st + 2nd fret + ‘Start’ = C# major. 2nd + 3rd fret = ‘Back’ + ‘Start’ = D# minor.
- Within the chosen key, first fret (green button) is the root note, while the others are intervals on the major/minor pentatonic scale. e.g. for C major, the frets are C, D, E, G, A. For C minor they are C, Eb, F, G, Bb.
- Move the pickup selector to the 2nd position to engage ‘drone’ mode, in which the root note for the current key is played on a second MIDI channel whenever it is played. Handy for having a different MIDI voice sustaining the chord. I’d like to add ‘chord’ and ‘strum’ and ‘arpeggiate’ modes in other pickup switch positions, though I think strumming and arpeggiating could be better handled by plugins responding to simpler MIDI notes which represent the current chord.
- The whammy bar controls the MIDI pitch bend. Different VST plugins choose to respond to pitch bend in different ways, so depending on your instrument you can even set this up to be a guitar slide rather than a simple bend.
- Left and right on the D pad to move up and down by 7 semitones. allowing you to explore the circle of fifths. Sort of. This bit needs some more work.
- Upper set of frets play up an octave.
If you’ve got a Rock Band guitar and want to use it as MIDI instrument, in GarageBand or anything else, I’m very happy to make the current version of my patch available. Most of the features should work with the Guitar Hero controller too, though I have not tried this yet. Let me know if you want to try my setup and don’t fancy re-creating it from the picture above, though obviously you’ll need the MIDI-enabled beta of ControllerMate, which is available to paying ControllerMate users who have paired their registration details with their forum membership, on the beta forum.
I think ControllerMate is easily worth the $15, and access to the MIDI-aware beta should make it an even easier decision.
Background / further reading:
- Wikipedia: major and minor and the circle of fifths.
- Jazz Primer: Pentatonic scales.
- I just found the Slapyak Guitar Hero Midi Controller, which uses an Arduino and is much better than my effort.
- Phil Gyford recently pointed me at this really interesting design for a geometric keyboard, which I think I might have something to learn from.
My lovely friends at IBM bought me a lovely leaving present: a copy of Rock Band for the Xbox 360. I’ve been enjoying it greatly, and have been working my way through a solo guitar career as well as in band mode with my wife (our band is called Good Girl OK after the praise/release phrases we use when training her our dog. Good girl, good girl… OK).
Tonight I decided it was time to take advantage of the USB connections on those instruments and get the guitar, drums and keyboard hooked up to GarageBand.
My first exploration involved
- An Xbox controller driver for the Mac (donationware, requires a restart)
- ControllerMate (free trial, well worth the $15 registration to unlock it).
GarageBand (and similar things. I really like Reaper) has a number of interfaces for people hoping to glue together random peripherals. Perhaps the simplest if the ‘musical typing’ on screen keyboard feature which lets you use your qwerty keyboard as a virtual instrument.
I started playing with ControllerMate to make it emulate keyboard events based on the guitar controls. There’s a lot of fun to be had in fiddling with this, and Ken’s post on the ControllerMate forums got me most of the way there very quickly.
Holding the green button (e.g. the first fret) and strumming up or down creates an emulated ‘a’ keypress, which is held until the green button is released. Additional up/down strums while green is still held do what you’d expect. Expand it to all five buttons and I ended up with something like this.
Look carefully and you’ll see that it also includes whammy bar mapped to the six levels of modulation and left and right buttons mapped to octave up/down.
In short, ControllerMate is a lot of fun. It also looks as though it’s pretty trivial to hook it up to a Wiimote too. This got me thinking about alternative approaches, particularly something better than emulated keypresses and on screen keyboards and ‘musical typing’.
I’ve talked about MIDI, and it’s trendier younger brother OSC, here before. Since these items showing up in ControllerMate, (including Wiimotes via Bluetooth and Guitar Hero / Rock Band instruments via USB) are all HID (Human Interface Device) peripherals, it struck me that I’d been meaning to find a general purpose HID -> MIDI/OSC solution for some time. The closest thing on Windows is probably GlovePIE, but even before my switch to Mac I’d been leery of the licence, which states that “You may not use this software on military bases, or for military purposes, or in Israel…”. Eek.
Looks interesting, and I like the free demo very much (reduced functionality and stops working after 20 minutes, but gives you a chance to try it). The full version costs €75 though, and I was sure I could find something similar in less than €75 worth of looking around time.
It turns out I was right. Hint: if I can buy your cool tool for $15 using PayPal (as was the case with ControllerMate) I will generally have registered for it before I can blink. Attempt to charge too much, and I get curious as to whether there’s something cheaper/free. I can’t be alone in this behaviour.
Not a bad trade-off at all. I have not tried the OSC support yet, and support for MIDI notes is broken very strange and unconventional, but support for MIDI control messages is good and will no doubt prove useful.
It gets better though. Registered users of ControllerMate should check the ControllerMate forums. There’s a beta preview version which can send and receive MIDI messages. Awesome. I think I’ve found my new favourite thing.
Update: I’ve now got a fairly good setup in ControllerMate. Here’s a description (with demo video) which describes how it works.