• Software Control

    Greg Kennedy06/14/2015 at 03:18 0 comments

    I didn't want to go too long without an update on this. I've done some significant work on the software (PC side) to configure the instrument. The way this will work is:

    1. Define all the play settings with this application.
    2. Connect MIDI-OUT from your PC to MIDI-IN on MIDI Hero.
    3. Software sends MIDI SysEx message containing new settings to MIDI Hero, which then saves them to EEPROM in a bank of presets.
    4. Presets loaded from EEPROM when the instrument is actually used to perform - swap from acoustic to electric on the fly, or between chord sets, etc.

    Here's a screenshot of the program.

    Still a work-in-progress, but much of the functionality is there. Don't be alarmed by the Windows 7 UI - the whole thing is being written in... wait for it... FreePascal using the Lazarus IDE. So that makes it easily cross-platform when I release the code later.

    This is my first time using Pascal / Delphi / etc. Can definitely see why it was the beginner language back in the day, but I'm treating it more like a cross-platform VB6 and it seems like a good fit.

  • Proof of Concept Video

    Greg Kennedy05/25/2015 at 06:52 0 comments

    It works! Next step: add features, design a replacement PCB?

  • Just Add Arduino

    Greg Kennedy05/25/2015 at 06:51 0 comments

    For my first prototype, let's take my Arduino and solder wires all over the insides of this.

    Well that was easy. Digital inputs on practically everything, except the potentiometer which is wired to Analog Input 0.

    Now for the fun part: using the ever comfortable, highly productivity enhancing Arduino IDE. Because I'm a pleb engineer, I didn't roll my own highly efficient MIDI implementation, and instead just dumped in the Arduino MIDI library.

    The way this works is:

    • buttons (start, select, tilt) fire "General Purpose" MIDI CC messages: on when held, off when released.
    • Whammy bar sends Pitch Bend messages to drop the pitch of all playing notes.
    • When upstroke or downstroke strum buttons are pressed, the Frets are read, and one of 2^5 (=32) sets of 6 notes are selected. These are played one at a time with some microsecond delay between, to simulate actual guitar strumming.

    At least, that's the theory, but there are some bugs in the prototype. One of the frets seems permanently stuck "on", the whammy bar sends pitch bend nonstop all over the place, and so on.

  • The Controller

    Greg Kennedy05/25/2015 at 06:38 0 comments

    Let's begin with the Guitar Hero controller. Thanks to the insane popularity of these games, there are probably now more of these plastic guitar controllers than there are humans on the planet - at least, there were enough for one company to drop hundreds of the damn things into a volcano as a publicity stunt. Search your local Craigslist and thrift stores, you should be able to snag one for five bucks or less.

    I caved and dropped a whopping $6.95 on this grody red Gibson SG knockoff from the local game store. Such is the price of progress, I guess. The clerk tells me there's a warranty but guess it's voided now.

    This version is for the PS2. Older versions are probably better for our needs: the new ones are wireless and include all kinds of proprietary chips and other nonsense. Let's take this thing apart with a Philips screwdriver and see what kind of parts our unwise investment will get us.

    • Plastic ABS shell
    • One-sided PCB with an epoxyblob micro
    • Rubber dome buttons, on other PCBs connected via ribbon cable. (One line per button, plus one for common ground)
    • The "strumming" input is just a plastic rocker centered over a pair of microswitches. I expected a spring or something to help it pop back into place, but it just relies on the pushback from the switches to remain upright.
    • Star Power "tilt sensor". I was hoping for some MEMS accelerometer, but all we have here is a conductive ball bearing sealed in a black package. Tilt upwards to make a connection.
    • Whammy Bar: spring-centered direct attachment to a 10k potentiometer.

    The case got a thorough bath. Though the stickers no doubt added all kinds of awesome street cred, I peeled them off anyway.