Thank you everyone for your responses.
I have one more question. I have been looking at key events with visual c++ and commands such as processkeyeventargs but I am unsure of how to implement them. I find plenty of definitions of what they do, but cannot seem to figure out how they work within actual code.
You're welcome, to give is to receive!
To be honest, I've never even looked at the functions you mention. I had been thinking of a simple console-app that just ran an infinite loop - i.e a while(1) type of construct. In it, I'd just call getch then send the result of that to the arduino. It'd be up to you if you checked for keystroke values on the arduino before translating them to notes, or if you converted the ascii code on the pc before sending a note number - like midi does. Just sending a byte with the value of the note would probably be my preference, since you just run the note number through a simple formula to get the required frequency. Something like this excerpt from my software synth perhaps:
pitch = 440.0f*pow(2.0f,(note-45.0f)/12.0f);
Where I generally use a range of [10..70] for note - I forget what the valid range is for midi, but my recollection is that I've used the same formula for translating a note number to an absolute frequency in Hz. (too lazy to check :grin:)
The other option would be to have a frame or dialog-based app, then just handle either the WM_KEYDOWN or WM_KEYUP messages from the main window. Perhaps you could even draw a piano keyboard and handle mouse-clicks by determining which 'key' you've clicked, before sending the value off to the mega. For an (html) example of the kind of interface I mean, try having a look at SoundToy - http://www.iquilezles.org/apps/soundtoy/ . I do note however, that it doesn't respond to mouse-clicks on the keys, only to keyboard strokes. But this is only an interface. The important thing is nabbing the keystrokes and getting the data to the beast. You can always make it look pretty when (if) you're inclined.
Nothing wrong with being cheap. (although the urban myth is now known to false) There was a wicked-funny joke about the millions of dollars spent by the US to make a pressurized biro (the Space Pen) that would work in space, in a zero-g environment, while the Russians simply took HB pencils.
While it only offers 'usb-client' functionality (no USB-host ability, apparently), V-USB is a (free) software only implementation. You can make a keyboard or mouse or joystick etc, etc HID with no hardware other than a usb socket and the arduino. You can control your mouse cursor or keyboard input with a couple of buttons connected to the mega. http://www.obdev.at/products/vusb/index.html