Forking this thread to focus on MIDI issues
This device has a single USB MIDI Interface on Interface 3, with 2 alternate settings, each with 2 endpoints as follows:
Interface 3 - Setting 0 - Endpoint 3 OUT Bulk Data - Endpoint 4 IN Bulk Data - Setting 1 - Endpoint 3 OUT Interrupt data - Endpoint 5 IN Interrupt data
My evaluation is that this is a new style of MIDI Interface from others previously encountered. Comparing, for instance, with the Roland V Synth GT which seems to have the following Interface layout:
Interface 2 - Setting 0 - Endpoint 3 OUT Bulk Data - Endpoint 4 IN Bulk Data - Setting 1 - Endpoint 3 OUT Bulk data - Endpoint 4 IN Interrupt data
The major difference is that the GT.001 has Interrupt Transfer modes for both IN and OUT.
Looking at snd_usbmidi_switch_roland_altsetting this sets the alternate setting so that the interrupt input endpoint is used. This routine looks for a pair of endpoints where the OUT endpoint is Bulk transfer, and the input is Interrupt transfer, and sets the mode accordingly. I've modified this to support Interrupt Xfer in both directions, and this seems to work (although my changes aren't read for publication yet as they are rather experimental and messy, and probably break the existing detection.
I'll try to fix this code and submit a patch.
Cheers,
Keith