Arduino + Midi Communication

Hey guys, first post, but definitely not last. ;)

My end-goal is to create myself an electronic drum set, for learning purposes just as much as for entertainment. However, I'm starting with small goals, and I shall increment the goal each time.

My first goal is hopefully quite simple, I just need some clarification or a re-explanation: I simply want to hook up a button to my arduino, send a signal to a midi box, which sends a signal to my computer. On the computer, I have midi mapping software to recognize the signal and play a note.

The midi interface I have that I got a while back is the presonus Audiobox, in case anyone needs to know. It has a MIDI In and Out, both female 5-Pin. (I can't link it on my first post, :P)

I'm just sorta confused with the overall picture/route I need to take. I need the signal to be MIDI so that the midi mapping software will understand it and act accordingly, playing the desired sounds. That much I know for a fact. I've read up on Arduino -> MIDI and it seems very easy, just a cord for 5v, ground, and the signal. The main issue I have is that if I hook my Arduino up to my Midi interface, the Midi interface then hooks up to the computer via USB. So...why can't the arduino just be hooked DIRECTLY to the computer via USB, and just send MIDI signals via USB? Does it take a lot of circuitry/mathematics or something?

I just don't understand why I'd need my MIDI interface if it just, in turn, hooks to the computer via USB anyway. Clearly MIDI can be sent via USB somehow. Whether its possible to an average Joe, is my question.

Either way, I can use my midi interface, just wanted to know why I couldn't just send MIDI signals via USB.

Thanks in advance, Mr.Muffles :)

I couldn't just send MIDI signals via USB

You can only communicate via serial between the computer and the arduino. While serial is very close to MIDI it is not quite MIDI due to the way the computer treats it.

You need a program of some sorts to catch the serial data from the arduino and convert it into MIDI. There is nothing to convert of course it is just you have to inject it into the computer's MIDI control. This can be done with either a stand alone program or a driver. You could write your own easily with the Processing language, it's multi platform and it's free. http://processing.org/

I've done this exact workflow on Max Os X Tiger. here is the link to the post that describes it with programming examples:

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1181709385/0#11