Standard USB to PC

I am in the process of building a midi drum brain. It consists of the following:

*) Atmega2560
*) 3 Mux/DeMux's
*) 40+ velocity and/or continuous input sensitive sensors

I am able to collect sensor data and format the data to complete midi messages. The project is currently at a point in which I would like to get the midi messages to the PC. The computer I am interfacing with is running Windows XP SP3.

This brings me to the following question(s):

Is it possible to connect the drum brain(Atmega2569 w/enhancements) to the PC with a standard USB cable, have the device be recognozed as a MIDI device and subsequently load the appropriate USB device drivers as in all "Windows standard PnP type hardware connections"?

As much as possible I would like this to be a hardware solution. There is a device I took a look at:

http://www.stephenhobley.com/blog/2010/09/07/arduino-sending-midi-over-usb-for-6-in-parts/

This is a very inexpensive solution that works in a pinch but I would rather not have to carry aound a bunch of loosly connected PCB's in my project box. It doesn't make for a very seemless presentation when showing it off. Modular yes, well connected, single PCB seemless way nooooo.

I have read many articles and Forum posts regarding FTDI and UART solutions and these may be viable but there is nothing that really brings either of them together solving the requirement. I have also read material covering the RS232 hardware interfaces but the RS232 seems to be dissapearing on PC's these days.

Any help would be greatly appreciated!!
-Ken

Hi Mozart,

did you read this ->

There's a project called yaamidrum similar to yours hosted on sourceforge:

To give an answer to your question->

Maybe this helps:

  1. http://hunt.net.nz/users/darran/weblog/5b7f8/
  2. ttymidi (for linux users)
  3. http://www.instructables.com/id/Turn-your-Arduino-Uno-into-an-USB-HID-Mididevice/

Have fun!

Having taken a look at the YaamiDrum source code can anyone explain what the purpose is, for the function midiLoopback()? It appears to be writing three bytes to the Serial port for no apparent reason. There is a call within this function to the MIDI_TX function which appears to be the mechanism for pushing midi data to the Serial port. I was thinking that the purpose for the midiLoopback function would be to clear the buffer but the followup call to MIDI_TX has the potential to send out ambiguous data. Any thoughts would be helpfull. Here is the link to the source if anyone cares to review it, just do a search for midiLoopback and that should get you to the section I am referring to:

http://mirror.transact.net.au/pub/sourceforge/c/project/ch/chloris1.u/YAAMIDrum.pde

Thanks!!

Why not just hack into one of these:

http://www.aliexpress.com/item/free-shipping-USB-TO-Keyboard-PC-MIDI-Interface-Adapter-Cable-9773/286559549.html.

You just need to have your Arduino send MIDI out on the serial , the interface would be recogniced as a MIDI devive on the PC.

Sending MIDI over serial with Arduino is well documented, and simple.

That doesn't answer the question I asked.

If you have one of the USB processors, (not just the Serial->USB chips) you can reprogram the firmware to act like a midi device:

Maybe I didn't ask the question correctly. I am really trying to figure out the purpose of the midiLoopback function in the YaamiDrum program code.