[HELP] MIDI Files on Windows/Linux -> Serial messages -> Read by Arduino

Hi,

I am looking to implement controlling some solenoids based on MIDI inputs. A lot of MIDI projects I have found out listen for realtime MIDI inputs but I prefer the MIDI inputs to be a MIDI file instead.
Thus, I am looking if I can have a Windows (preferred) or Linux application/software which can process my MIDI files and output them to serial messages which are understood by my Arduino. To be honest, I have a feeling it may not be something too difficult to pull off but strangely, I couldn't find anything similar via Google.
Can Pure Data do it, or is there anything easier than that?

Or there could be an easier way to send MIDI messages to my Arduino?

Thanks a lor for reading and hopefully you can drop in a few advices.

Or there could be an easier way to send MIDI messages to my Arduino?

You can use a Serial-MIDI converter software like this:

http://spikenzielabs.com/SpikenzieLabs/Serial_MIDI.html

Or you can just use a regular MIDI output of your computer (using whatever MIDI hardware you have) and connect to the Arduino using a MIDI interface shield, like our Flexible MIDI Shield.

--
The Gadget Shield: accelerometer, RGB LED, IR transmit/receive, speaker, microphone, light sensor, potentiometer, pushbuttons

RuggedCircuits:

Or there could be an easier way to send MIDI messages to my Arduino?

You can use a Serial-MIDI converter software like this:

Serial_MIDI

Or you can just use a regular MIDI output of your computer (using whatever MIDI hardware you have) and connect to the Arduino using a MIDI interface shield, like our Flexible MIDI Shield.

--
The Gadget Shield: accelerometer, RGB LED, IR transmit/receive, speaker, microphone, light sensor, potentiometer, pushbuttons

Interesting application there. Can't get it to work without the board. Will try it again when I got the board tomorrow.
But the application seems to be able to do Note-ON and Note-OFF only, as from the website itself:

MIDI messages coming from the MIDI-in port are limited to Note-ON, Note-OFF and Controller change commands.

Will be great if I can get something who can accept velocity as well.

Can you tell me more about how I can utilise a MIDI shield in my project? I am really new to Arduino and audio processing.

EDIT: Also, what do you mean by regular MIDI output of my computer? Is normal PC capable to send MIDI messages that are easily understood by a MIDI shield?

A MIDI shield converts incoming MIDI messages to serial data, so you can access it in your sketch using a Serial object (either hardware serial or the SoftwareSerial implementation).

Getting MIDI out of your computer needs some kind of MIDI hardware with drivers. Something like this (just a random thing I found -- no particular endorsement is implied):

--
The Ruggeduino: compatible with Arduino UNO, 24V operation, all I/O's fused and protected

RuggedCircuits:
A MIDI shield converts incoming MIDI messages to serial data, so you can access it in your sketch using a Serial object (either hardware serial or the SoftwareSerial implementation).

Getting MIDI out of your computer needs some kind of MIDI hardware with drivers. Something like this (just a random thing I found -- no particular endorsement is implied):

http://www.amazon.com/Roland-UM-1-Compact-Audio-Interface/dp/B004KCLXBE

--
The Ruggeduino: compatible with Arduino UNO, 24V operation, all I/O's fused and protected

Well, I think I will still look for solution for sending serial messages right away to Arduino. Can Pure Data interpret MIDI files easily and interface with Arduino well?
Is it possible to convert MIDI into text files and send it to Arduino via the USB instead?

Hi!

One way I found to send MIDI signal from your computer to the arduino is to make a processing program that convert the MIDI message to serial and send it to the arduino.

You can use a Serial-MIDI converter software like this:

Serial_MIDI

I am not sure of exactly what can and can't do this converter but using the MIDIBus library for Processing is a easy way to do it (the converter software is done with it if I am correct).
I am for example able to send MIDI timing clock message from my music software on my computer (I use Ableton Live) to Processing, then to Arduino....and I have blinking LEDs in rythm.

So sending note and velocity information should not be very difficult. But you need to find a music software that can read your MIDI file and send those out.
If you are using Windows, you will need to install a program such as MIDI Yoke: http://www.midiox.com/. This will create MIDI port in your computer from which you will be able to send/receive MIDI messages.

Hope this help!