midi player/ipod trigger

hello, I am new to arduino and only slightly familiar with programming and the likes. I am a musician and I am looking for a certain set up for my on stage shows. I want a one foot switch solution that can trigger my ipod to play a backing track and at the same time play a midi file stored on an SD card that will trigger my pre-programmed light show via my lighting controller. my ipod is an ipod video 30gb (i believe that is 5th generation) i have a teensy2.0++. bonus points for interfacing an LCD that can tell me which track and midi file I am about to play so that there is no guessing on stage. So again I imagine that my teensy can read which track is selected on my ipod and display that on an lcd. Also read a selected .mid file (or something similar) stored on an SD card and when i hit the PLAY button it triggers my ipod to play the song and plays the .mid file through a midi port. If there is any sort of way to keep them in sync that would be great but im expecting to work in some sort of delay in the playing of the midi file because usually an ipod will take a half of a second to actually play a song after you hit play. the control buttons would be basic PLAY and STOP which would control both the playing and stopping of the ipod and the .mid file simultaneously and separate FORWARD and BACKWARD scroll buttons for selecting midi files and ipod songs. In the end my light shows and my backing tracks will be synced perfectly so that i just have to stomp and play my part till the song ends. Any help would be super appreciated. thanks in advance.

There is a serial protocol through the dock connector that I've seen documented online. (Haven't looked into it in detail because I haven't had a need to interface with it myself yet.)

There are projects for playing MIDI data via the Arduino. Start looking at those and getting basic MIDI I/O working. Post if you have questions on getting past some particular barrier.

I'm not aware of the iPod sending synchronization data over serial, so you're going to have to make it a WAG as to when it starts. Being that it's based on a hard drive -- and an aging one at that -- the time could start to drift a little longer due to recoverable seek and read errors. I don't think it'll be an exact science. You might get a time display that you can use to trigger when it changes from 0:00 to 0:01 -- that way at least you'll know it's playing.

LCDs are easy. Tons of articles on that, and the hardest part is connecting all the wires. I believe the song metadata is available based on products that use it, but again, I'm not an expert on the iPod serial protocol.

I have seen lots of articles and code for interfacing to an ipod and getting it to PLAY STOP SKIP etc. that seems to be the easiest part. I haven't seen anything about getting track title or time code yet. I have also seen lots of things about generating midi code using arduino or interfacing buttons to trigger midi commands but I have yet to see anything that resembles reading midi files from and SD card or having any sort of code in place to actually play them. I will keep looking i suppose.

Here's one:

Page is in French; code is in C, comments in English.