Let's suppose I have three keytars, such as this model. I want to hook them up to the NES (Nintendo Entertainment System) in some fashion. The NES has a controller port I can use that is wired like this. So, basically, a serial port with three input pins and one output pin. (Many devices use just one input pin.)
There are two ways to hook up the keytar to a device: a MIDI cable or USB. Keep in mind I want to hook up three keytars, not just one, so making a cable that connects MIDI to the NES controller port will not be enough on its own.
Here is one solution I thought of, but I can't help but think it's overkill: the keytars plug into a USB hub, which plugs into an Arduino USB Host Shield. The Arduino's output pins are then connected to the NES controller port. I have not programmed an Arduino before, so I'm making a bit of a wild guess about its suitability to this problem. I am a bit intimidated by the prospect of having to write a USB driver for the keytar if none exists (and I'm guessing none exists), although on the upside the main data stream would probably still be standard MIDI messages. (EDIT: since the keytar's USB is class-compliant MIDI, an Arduino driver might exist already or be easy enough to write...)
There's another minor consideration: there is an issue that the NES has when reading the controller port. The system has a notorious bug that, under certain circumstances (which will definitely apply here), sometimes causes the controller port to be read twice during one read instruction. This causes one bit of input to be lost, since the device thinks there were two reads (and therefore sent two bits), but the NES program only received one. While I think it'd be possible to compensate for this on the NES end, I think I'd much prefer to compensate for it on the device end, since I believe it would be much easier to handle. I believe that the device can compensate by requiring a certain number of clocks to elapse before it will send the next bit. This sounds like a task the Arduino would be good at.
Before anyone brings it up: I am aware there already exists a product called MidiNES that does something similar. I have determined that MidiNES does not suit my needs; for one, it cannot be used with programmable software (since it uses the cartridge slot), and for another, I don't want to be dependent on a tool that might not be easily replaced if it stops working and its maker has gone out of business.
So, that's my situation. How would you approach this problem?