The answer is - enough voltage to get 5mA flowing at the given resistance. ;) Have a look at http://www.midi.org/techspecs/electrispec.php for the MIDI electrical specification. MIDI in has an optocoupler (typical voltage drop of 1.3V for a 6N138) and a 220? resistor. So your MIDI out needs 2.4V to supply 5mA. If your supply is higher, add more resistance to drop the voltage. Eg an extra 120? if you're using a 3.3V part with a 3V minimum output high voltage or 380? if you've got a 5V part with a 4.3V minimum output high voltage. In the MIDI spec example (and the MIDIbox), they've been cautious and used 2 220? resistors (also 380? isn't a standard resistor value). My MIDISPORT 2x2 has a single 470? registor has its output. Speaking of which, the MIDISPORT 2x2 is a nice device to base a MIDI interface off. It uses the Cypress AN2131SC (same as the MBHP USB), an 8051 based microcontroller with hardware USB support. It downloads its firmware from the host computer so development cycles are fast. The stock firmware isn't class-compliant and doesn't work with Vista 64-bit. When i get some time i'll write new firmware for it, using the open source firmware for Linux (http://www.linux-usb.org/ezusb/) as a base.