Chord projection using MIDI

I had a good idea I'm kind of new to the Arduino world. So I hoped some of you could help me getting started.

I want to make different LED's light to turn on for different tunes using MIDI files. So that you can attach every tune to a specific light. You put those specific lights on the fretboard of a guitar, so that the light indicates where you should press the press the string. So basically you can create real-time guitar tabs on a real guitar using MIDI.
But I don't really know where to start.
Does anybody have any usefull examples of idea where I can take a look at?

I've never used MIDI, but I know a little about it.

I assume you know about the [u]Fretlight guitar[/u]?

On the hardware side you'll need a MIDI shield to interface with a traditional serial MIDI connector. USB MIDI is a bit trickier because you need the Arduino to "act like" and identify itself as a MIDI device. (I'm pretty sure that's been done.)

To drive and individually-address many LEDs, you can use [u]shift registers[/u] or there are special shift-register LED drivers. With this technique you can individually control an almost unlimited number of LEDs with just 3 Arduino output pins.

On the software side, there's a MIDI library that can decode the MIDI messages.

There's something that might get a little tricky with the software... Some notes (most notes?) can be played on more than one string. You could "decode" a chord in a way that more than one fret is lit-up on the same string or you might have several LEDs light-up for each note in the chord (or for a single note). So, you might have to figure some of that logic into your code.