Play Guitar Hero Like a Real Instrument

Hack a Wii guitar to play YOUR notes!

Play Guitar Hero Like a Real Instrument

TIME: ???.

Jan 30, 2008

Posted by Jim 2.0 | tagged: MIDI, hack, music, Wii, Guitar Hero

Above: The Jumbotron, just before the Jaeger makeover reveal

One of the most fun highlights of each 2.0 block party -- not to mention the technology makeovers themselves -- is getting to rock the wildly popular Guitar Hero video game on a chest-rattling, state-of-the-art system.

The only catch is, you have to play the notes they want you to play, in the order they want you to play 'em. Green, red, yellow, green, red, blue, yellow...sometimes you just want to escape those colored dots and do your own thing.

Well, now you can.

Programmer Josh Breckman hacked a Wii Guitar Hero guitar controller so it actually can be played like a real instrument, with 45 different available pitches.

While the actual creation of such an instrument is probably best left to those with Guru Lloyd-level computer skills, just watching Josh's video demo should bring a grin to anyone who's ever strapped on a plastic guitar and heard that jarring "SKROINK!" when you hit a bum note.

For those of you out there with real cyber-chops, Josh's directions are quoted below, courtesy of HackedGadgets.com:

“I combined: WiimoteLib and [Wrapper Library for Windows MIDI API] to handle midi stuff

past that, i just had to find the special code saying it was a guitar hero controller - similar to the nunchuck. (guitar hero was 0xfb, and nunchuck was 0xf3)

past that, in the same bit of code that looks for nunchuck/classic controller stuff, i managed to figure out the byte/bit patterns of the different keys:

mWiimoteState.GuitarState.Whammy = (float)(buff[offset + 3] - 240) / 10; mWiimoteState.GuitarState.DownStrum = (buff[offset + 4] & 0×40) == 0; mWiimoteState.GuitarState.UpStrum = (buff[offset + 5] & 0×01) == 0; mWiimoteState.GuitarState.Note1 = (buff[offset + 5] & 0×10) == 0; mWiimoteState.GuitarState.Note2 = (buff[offset + 5] & 0×40) == 0; mWiimoteState.GuitarState.Note3 = (buff[offset + 5] & 0×08) == 0; mWiimoteState.GuitarState.Note4 = (buff[offset + 5] & 0×20) == 0; mWiimoteState.GuitarState.Note5 = (buff[offset + 5] & 0×80) == 0;
break;

From there, I had access to midi, what buttons were pressed, the wiimotelib already had the accelerometers rigged up, and all I had to do was put them all together :)”

Kudos, Josh...keep on rockin'!

0 comments

    ADD COMMENT

    RELATED FORUM DISCUSSIONS

    My Home 2.0: Powered by Verizon FiOS

    LEARN MORE

    Enter your 10-digit phone number to see if FiOS is available to you.
    - -
    Why you should want FiOS!

    Today's 2.0 Tip

    Search faster, and let your favorite shows find you!

    Click for more DIY and tips!

    FiOS Wiki

    Share your tweaks, tips and knowledge with FiOS users!

    Check it out now!

    Our Next Family

    The Jaegers
    Their dusty old photos are now a stunning digital Memory Wall!

    Click for all the families

    Casting Upgrade

    Does your family need a tech makeover?
    Audition now!

    Have a family to recommend?
    Click here!