This device doesn't seem to be supported yet. Does Roland make the specifications available, etc? The device is not compatible with USB Audio, but rather uses Vendor Specific Class.
It appears to have most of the audio class descriptors, so it should be possible to tell the driver to just use it.
Please try to add the following entry somewhere in sound/usb/usbquirks.h and to recompile the driver:
{ /* Edirol M-16DX */ USB_DEVICE(0x0582, 0x00c4), .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .ifnum = QUIRK_ANY_INTERFACE, .type = QUIRK_COMPOSITE, .data = (const struct snd_usb_audio_quirk[]) { { .ifnum = 0, .type = QUIRK_AUDIO_STANDARD_INTERFACE }, { .ifnum = 1, .type = QUIRK_AUDIO_STANDARD_INTERFACE }, { .ifnum = 2, .type = QUIRK_MIDI_FIXED_ENDPOINT, .data = & (const struct snd_usb_midi_endpoint_info) { .out_cables = 0x0001, .in_cables = 0x0001 } }, { .ifnum = -1 } } } },
Could you add this quirk to the alsa-driver distribution as well? I'm getting tired of patching it myself for every new release :)
Note: playback doesn't actually work because it is not properly synchronized. The device also doesn't have any MIDI ports, but maybe that's for remote control of parameters?