loading
Overview:
The main idea of this project is quite simple. It is to modify a Guitar Hero controller so that it can not only play on its own, but also play perfectly.

Here is the First Song I did: "When You were Young" by The Killers

NOTE: The tapping sound in the video is me hitting the wammy bar. I have not yet made a way to control this or star power so I did it manually. Star power, though, would be quite simple to incorporate into this project, but I chose to do it manually.
 

I am also working on Through The Fire and The Flames by Dragonforce and will upload it when finished.

UPDATE: I was unable (really just unwilling to put in the amount of time needed) to make it play perfectly. I was able to get it up to 98.549% a mere 1.451% away from perfection.
I may eventually fix it to be made perfect but for now only missing 54 of the 3722 notes is good enough for me.
So with out further ado here is the video of it getting 98% 

Throughout this instructable you will see numbers written in each step. These numbers correspond to the pictures above the step(1 being the first etc.). 

Background:
I got my first Arduino (Mega-2560) a few months ago. I love it. I've done a few really small projects with it, mainly with LEDs, but I have not done a big project yet. So I started thinking. My first idea was to create a system that would sync our Christmas lights to music like so many people have done. So I started doing research. I found out that this would be fairly easy to, all I would need to do is get some Relays and wire them up to the lights and use a serial connection from my computer to my Arduino to tell it when to turn on and off the lights. This was exactly what I was looking to do, except we don't really have a lot of outside Christmas lights nor do we have very many people in our neighborhood that would even see them. Also, being new to electric circuits, I didn't want to deal with AC as it can be very dangerous if you don't know what you are doing. So I decided against doing Christmas lights synced to music.

Throughout all the research I did on lights synced to music, I found out about a program called Vixen. Vixen is a program that many DIYers use to control their lights. It's got a really simple interface, it can output in serial commands, and it is really easy to get the timing on things really precise, even down to a couple of milliseconds. Since I had just ruled out doing Christmas Lights, I started to think about some way I could incorporate this awesome program into another project. I  tried to think of something that I use a lot that I could automate with this. The first thing that came to mind was Guitar Hero. Ever since guitar hero came out I have been a huge fan. I have most of the games and 4 or 5 of the guitars. I love playing the game and have gotten really good, but there are still a few songs, like Through The Fire and The Flames by Dragonforce, that I cannot beat. So my goal was to build something that could beat that song on expert, but not only beat it buy play it perfectly. No, I didn't create this project to get the highest score on the leader boards, because that would be cheating and I could care less about a high score.

Step 1:

Differences:
The way I went about this is different than many people who have done the same type project. First, many of the projects I have seen use motors/solenoids to physically push the buttons, but this is not the best method for a few reasons:
1. The motors/solenoids are not instant. They take time to push and release the buttons. 2. Motors/solenoids can be expensive. My method addresses these issues by using Solid State Relays (SSRs), which have switching times of about 1ms and are relatively cheep (about $1 per relay).

A second way mine is different is that mine is "programmed" instead of using light sensors attached to the screen like many projects I have seen use. While yes you must program each song you wish to play and programming the songs take a while, it seems to be more accurate with the notes and does not have to be calibrated. 

How it Works:
The way this project works is kind-of complex, but once you understand it, it is quite simple. First you create an "audio note chart" of the song you wish to play. Next this "audio note chart" is converted by the application Vixen to serial commands. These serial commands are sent to the Arduino board. The Arduino board the turns on some SSRs which make the controller think that buttons are being pressed, thus "playing" the guitar.

Like with many projects, this project can be split into 2 different parts: Hardware and Software.

Advertisement

Nice project. This has inspired me to do that same thing. I have the UNO arduino, and im a complete noob (just bought first arduino for this project) got any help or tips for a newbie?
What type of Arduino should i get. Can you send me a link to buy one.
Very, very cool... pretty close to what I put together. Let me know what you think: <br> <br>http://kck.st/MAE3gI <br> <br>I ended up using an ATMEGA168.
Great instructable! Thanks for taking my idea though. :( I literally just asked my son if he had any old GH controllers last week. This was before the Arduino contest was announced. I just wanted to do something with the GH controller. I like your integration of Vixen too - again, something I was going to do for another project. I guess that's what happens when you sleep - or have to do other things like work ;P.
Haha, yeah I was going to wait until I had finished &quot;Through The Fire and The flames&quot; but someone else had just posted an instructable about hooking up the guitar hero buttons to an arduino to use as an input device. Even though it was pretty much the opposite of mine, I could not wait any longer as I knew someone else would probably think of it and beat me to the punch.
Haha - yep, that was the instructable that inspired me to think of how to output to the GH controller rather than read from it. My ADHD kicked in though and I started working on a different, unrelated software only project. Good luck in the contest!

About This Instructable

16,218views

34favorites

License:

Bio: Hey! My name is Tim and I am a complete geek. I love computers and how they work. I like building robots. I also love ... More »
More by tcrenshaw4bama:Guitar Hero Arduino Bot. 
Add instructable to: