I'd strongly recommend using an Arduino Leonardo, Micro, or Teensy. Using real MIDI over USB is much, much easier.
You can get Leonardo clones for around $4 from China if cost is an issue. It'll take a couple of weeks to get delivered, but I think it's worth it. You can start with an UNO now, and then use the Leonardo once it arrives.
There are two main approaches to use on the UNO:
- Use real MIDI over USB by flashing custom firmware to the ATmega16U2.
- Use a tool on your computer that creates a virtual MIDI port, and translates the Serial data from the Arduino to MIDI.
The first one is really cumbersome, because when you flash the MIDI firmware, you cannot upload new Arduino sketches. You have to reflash the Arduino firmware again, then upload your sketch, flash the MIDI firmware again, and then test your sketch. There are firmwares that promise to do both, but I haven't tried them yet.
The second options isn't ideal either, because you always have to run an application on your computer. You can't just plug it in a friend's laptop and have it work, he'll have to install the application first.
You can find more information here: Arduino MIDI over USB
If you want to build a MIDI controller, I'd recommend my Control Surface library, (or its predecessor, the MIDI Controller library).
They are compatible with most Arduino boards, and can be used with both options mentioned above.
The first step is to use the USBDebugMIDI_Interface. This prints the MIDI events to the Serial monitor, for easy development and debugging.
Once that's working, you can use USBMIDI_Interface, this can be used with the custom firmware mentioned above (option 1), and is compatible with use the boards that support MIDI over USB natively, such as the Leonardo, Micro, Teensy ... boards.
Alternatively, you can use the HairlessMIDI_Interface to use it with the Hairless MIDI <-> Serial bridge application (option 2).
To flash the firmware, you can use dfu-programmer or Atmel Flip. I wrote out the instructions some time ago, you can find them here, but I don't know if they're up-to-date for Flip, since I don't use Windows.
I've used HIDUINO in the past, and it worked fine, but USBMidiKliK promises to support both uploading sketches and doing MIDI over USB, so that could be interesting.
Pieter