I have a "Fore" USB-MIDI converter and I suspect it is not properly handling the 1-byte MIDI messages that my Windows PC-based sequencer is sending. The codes are 0xf8 (timing code), 0xfa (MIDI start), and 0xfc (MIDI stop). The converter seems to generate a bogus note-on event to its MIDI-out for almost every 1-byte message it receives. The bogus note-on event uses the velocity value and status byte from a previous note-on event, using the velocity value as both the note code and velocity value for the bogus note-on event. This of course causes hung notes.
If I route the sequencer to an internal MIDI device (i.e., Microsoft GS Wavetable Synth), there are no hung notes. If I put the converter in loopback mode (connect MIDI-out to MIDI-in) and capture MIDI in data on the PC (using Windows mmeapi MIDI in "driver"), and print out all the MIDI data received, I can see the bogus notes:
[0xfa, MIDI start code sent from sequencer]
MIDI in: 90 54 54 <-- bogus note
MIDI in: 90 35 54 <-- first real note
...
So I bought another USB-MIDI converter of a different brand (Wersi). It does the exact same thing. In fact, it looks like it uses the exact same PCB and housing (same oval cross section, length, and bright red LED). It even came in an identical box.
Any ideas where to go from here?