Controlling solenoids from MIDI files

Hi all,

I took the time to do some readings and researches and now have a clearer ideas on what I want to do now. Here's my post last time. (Feel free to just skip it..),73038.msg548466.html#msg548466

Basically, here's what I want to achieve. I want to get Arduino to read a MIDI file, and then fires signals to the solenoids it connects to and control them.

I have 28 solenoids to control, so I think I need an Arduino Mega 2560 for that number of outputs. As I will use the Mega, I can get the Arduino to read the MIDI from a USB flashdrive. Alternatively, I may want to use an Android app (since Mega supports Android) to send the MIDI into the Arduino. I think I need a MIDI Shield, like this Do I really need one?

I am basically unsure about whether getting the Arduino to read MIDI files from a USB flashdrive is tougher to develop or getting it to read from Android is tougher. I prefer the Android option though as I can do a UI for it and the phone can serve as the power source. It sounds cooler as well!

I really need advice on how could I read the MIDI files. A lot of projects I found online are either using PureData or similar softwares on Windows or get MIDI input from real-time, like from an electronic keyboard.

I have only basic C knowledge, but am willing to learn more! So far, I can still understand Arduino codes as I find them really simple to read.

Please advise!! Thanks!

This needs a MIDI input and does not read a file but it might help:-

Getting a MIDI file parsed and firing it into a routine is something I have not seen code for on line. There was one person who claimed to have done it but he refuses to post his code. Note there are two types of MIDI files and format 0 and format 2. Format 0 is by far the easiest to decode.