For this project, I decided to do something that helped to assist new (and experienced) guitar players learn new songs or concepts regarding the instrument. Originally, I wanted to create a program that was capable of recognizing guitar chords via a cable plugged into the microphone-in port of a computer as they were played in real time. After completing some preliminary research, I was only able to find one program that was similar to my initial idea. This particular program would take an MP3 then analyze the guitar playing and spit out which chords were being played in the song and when. I found that it worked marginal at best. Furthermore, upon researching how I would even start to program an application like this, I encountered some math that I was not very familiar with (like Fourier transforms).
I opted to scrap the chord recognition idea because there were simply too many unknowns involved in the project, including if it would be even possible at all without the need of special hardware. Still wanting to stick with the whole guitar theme, I chose to simply change what it was my program would do instead while staying with the global guitar theme. Instead of being able to detect a chord being played, Guitar Trainer will follow guitar tablature, showing the correct chord positioning and the correct strings that should be played throughout the entirety of the song.
In addition to this, the application will contain a search feature allowing the user to search YouTube for instructional videos regarding whichever song they are seeking assistance on. If an adequate video is found, the option will be given to watch the video inside the application so certain tricky sections, how to finger a particular chord, or the strum pattern of some particular song can be referenced easily presuming there is a video about it on YouTube, which is generally the case if it is a moderately popular song.
In Figure 1, you can see how a chord might be arranged. In this example, a C chord is displayed. The yellow lines represent strings that should be played where the red lines represent lines that should either not be played at all (like in this case) or muted. The black circles with numbers on them represent where your fingers should be fretting this particular chord. “1” represents your index finger, “2” represents your middle finger, and so on. The black circles at the top of the guitar mean the chord is “open”, or not fretted/fingered at all, but still played.
This is all common guitar-playing parlance and should be familiar to anyone who has looked at tablature before, taken lessons from a teacher, or read any beginner’s book about playing the guitar. The red and yellow lines, in addition to the finger markings, will all be dynamically drawn on top of a static image instead of replacing the entire, pre-rendered picture for each chord change for simplicity’s sake. There would be a lot of pre-rendered pictures...