I really like the MIO-XL for its USB host ports. I want to use it as centerpiece of my MIDI rig, involving a Yamaha MODX, Nord Stage2, Access Virus, and a Teensy Microcontroller.
Unfortunately, the MIO-XL does not recognize the Teensy (class compliant!) in its MIDIx4 or MIDIx16 modes, where it provides 4 or 16 virtual ports.
Only the single-port mode works. I have been in contact with the iConnectivity support and the Teensy developer to investigate the issue. First we all thought that it might be related to the Teensy being a hybrid USB device, providing MIDI and serial-port protocols, the latter for programming issues.
So I disabled the serial port device, turning the Teensy into a pure MIDI device. Still - the 4 port mode does not work, only if I bring the number of MIDI ports down to two. I know that the MIO-XL supports USB devices with more ports in general. So what could be the problem here?
This is the USB descriptor in 4-port mode. The MIO-XL does not recognize this device:
This is the same USB descriptor, but stripped down to 2-ports. This works perfectly fine:
The USB descriptors are identical, except for the additional Jack descriptors.
I wonder if the MIO-XL's USB implementation makes additional assumptions that are not met by the Teensy's USB descriptor, although it's supposed to be class compliant. I'd be very thankful for any help, and I'm happy to spend more time investigating the issue if someone has an idea what to try.