My GuitarSuite project is now open source, free for anyone to use and develop!
The current build supports riff extraction and melodic classification. You can import guitar riffs from a Guitar Pro (*.gp4) tab file, build a database of melodies to recognize, and then have them recognized in real time as you perform them on your guitar.
You must have electric guitar connected to computer via some external device that allows recording of the guitar’s sound. This could be a mixer, effects pedal, or other device that interfaces with your computer.
If you don’t have an electric guitar, you could always hum. You better hum well though!
For interfacing my guitar, I use a Digitech RP150.
I plug my guitar into the pedal using line in and connect the Digitech pedal to my computer with usb. The Digitech pedal replaces my laptop’s microphone as the recording device.
-Java 1.5 or higher
-Matlab 2008 or higher
-Matlab Signal Processing Toolkit (comes with Matlab 2008 or higher)
To download from svn, run command:
svn checkout http://tandonexperimental.googlecode.com/svn/trunk/MelodicClassification/ GuitarSuite
1. Open Matlab
2. Do File –> Set Path –> Add with Subfolders
3. Go to your GuitarSuite/drivers folder and add both “kts-matlab-midi-d0b8bfd” and “MATLAB-Chroma-Toolbox” to your matlab path, WITH SUBFOLDERS.
The project comes with build.xml, an ant build file. You can use your favorite IDE to build it. I recommend eclipse.
The build file contains two runnable targets:
DBLoader.gui and DBRecognizer.gui.
DBLoader.gui brings up the user interface to build your melody database. You can import different *.gp4 [NOTE: ONLY *.gp4 is current supported!] files into the program. The program will extract the riffs from these files. You can then select which of these riffs to add to your melody database, the database of melodies that can be recognized.
DBRecognizer.gui brings up the recognizer user interface. The recognizer should load up matlab at startup.
Once matlab starts up, start performing!
The recognizer will record clips of audio from your guitar every 10 seconds. Following each 10 second record, the recognizer will attempt to label what you’ve just played. It will utilize the database of melodies you created and try to figure out the best match to what you’ve played.