* Rane SL-4 USB sound card
@ 2015-07-04 9:38 Tuukka Pasanen
2015-07-05 17:32 ` Clemens Ladisch
0 siblings, 1 reply; 11+ messages in thread
From: Tuukka Pasanen @ 2015-07-04 9:38 UTC (permalink / raw)
To: alsa-devel
Hello,
I've been hacking to get Rane SL-4 USB audio
(http://dj.rane.com/products/sl4-for-serato-scratch-live) which have 4
Input and 4 output channel to work with ALSA. After digging the lsusb
and snoops I have separated endpoints for input (0x82) and output
(0x06). They are just USB Isochronous I/O.
I have compiled kernel and tried to get USB-quirks to work with this but
then I have to admit that even Reloop Play seems be very similar it
doesn't do the trick (No error but card doesn't come up eather) nor
using Ranel SL-1 approach which just shoots the error
[ 3555.009349] usb 1-5: Audio class v2 interfaces need an interface
association
[ 3555.009373] snd-usb-audio: probe of 1-5:1.0 failed with error -5
[ 3555.009394] usb 1-5: cannot find UAC_HEADER
[ 3555.009401] snd-usb-audio: probe of 1-5:1.1 failed with error -5
[ 3555.009421] usb 1-5: cannot find UAC_HEADER
[ 3555.009427] snd-usb-audio: probe of 1-5:1.2 failed with error -5
If I need interface association how to do that? Trying to adjust mixer
values in mixer_maps.c.
If someone have a time to give some guidance if this doable with Quirks
or do I have to write some more specific driver? I attach lsusb below here.
HID device seems to be adjusting buffer size and 48 Khz and 96 Khz output.
Bus 001 Device 003: ID 1cc5:000f
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 255
bDeviceProtocol 255
bMaxPacketSize0 64
idVendor 0x1cc5
idProduct 0x000f
bcdDevice 1.00
iManufacturer 1 Rane Corporation
iProduct 2 Rane SL 4
iSerial 3 RH.01.00
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 235
bNumInterfaces 4
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 1
bInterfaceProtocol 32
iInterface 4 SL 4 Audio
** UNRECOGNIZED: 09 24 01 00 02 0a 4b 00 00
** UNRECOGNIZED: 08 24 0a 05 01 01 00 00
** UNRECOGNIZED: 11 24 02 01 01 01 00 05 0a 00 00 00 00 05 00 00 00
** UNRECOGNIZED: 0c 24 03 02 02 06 00 01 05 00 00 00
** UNRECOGNIZED: 11 24 02 03 02 06 00 05 0a 00 00 00 00 0f 00 00 00
** UNRECOGNIZED: 0c 24 03 04 01 01 00 03 05 00 00 00
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 32
iInterface 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 32
iInterface 0
** UNRECOGNIZED: 10 24 01 01 00 01 01 00 00 00 0a 00 00 00 00 05
** UNRECOGNIZED: 06 24 02 01 04 18
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x06 EP 6 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0208 1x 520 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 32
iInterface 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 32
iInterface 0
** UNRECOGNIZED: 10 24 01 03 00 01 01 00 00 00 0a 00 00 00 00 0f
** UNRECOGNIZED: 06 24 02 01 04 18
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 37
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Implicit feedback Data
wMaxPacketSize 0x0208 1x 520 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 No Subclass
bInterfaceProtocol 0 None
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.10
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 28
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 255
bDeviceProtocol 255
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0000
(Bus Powered)
Thanks you for your time and any tips would be nice.
Sincerely,
Tuukka
^ permalink raw reply [flat|nested] 11+ messages in thread* Re: Rane SL-4 USB sound card 2015-07-04 9:38 Rane SL-4 USB sound card Tuukka Pasanen @ 2015-07-05 17:32 ` Clemens Ladisch 2015-07-06 10:15 ` Tuukka Pasanen 2015-07-06 12:42 ` Tuukka Pasanen 0 siblings, 2 replies; 11+ messages in thread From: Clemens Ladisch @ 2015-07-05 17:32 UTC (permalink / raw) To: Tuukka Pasanen, alsa-devel Tuukka Pasanen wrote: > I've been hacking to get Rane SL-4 USB audio ... to work with ALSA. > I have compiled kernel and tried to get USB-quirks to work with this ... it doesn't do the trick > If I need interface association how to do that? The interface association descriptor should have been provided by the firmware. Anyway, try the following quirk: { USB_DEVICE(0x1cc5, 0x000f), .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 = 1, .type = QUIRK_AUDIO_STANDARD_INTERFACE }, { .ifnum = 2, .type = QUIRK_AUDIO_STANDARD_INTERFACE }, { .ifnum = -1, } } } }, Regards, Clemens ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Rane SL-4 USB sound card 2015-07-05 17:32 ` Clemens Ladisch @ 2015-07-06 10:15 ` Tuukka Pasanen 2015-07-06 12:42 ` Tuukka Pasanen 1 sibling, 0 replies; 11+ messages in thread From: Tuukka Pasanen @ 2015-07-06 10:15 UTC (permalink / raw) To: Clemens Ladisch, alsa-devel Hello, Thanks you for you reply. That did the trick almost. It only gives sysdefault with two channels and error: [176317.418587] usb 1-5: parse_audio_format_rates_v2(): unable to retrieve number of sample rates (clock 5) [176317.419156] usb 1-5: parse_audio_format_rates_v2(): unable to retrieve number of sample rates (clock 5) I figured out this kind of QUIRK which seems to be working (go to test tomorrow more). I would go with first quirck as it's looking simpler but I can't add rates to it? { USB_DEVICE(0x1cc5, 0x000f), .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 = 1, .type = QUIRK_AUDIO_FIXED_ENDPOINT, .data = &(const struct audioformat) { .formats = SNDRV_PCM_FMTBIT_S24_3LE, .channels = 4, .iface = 1, .altsetting = 1, .altset_idx = 1, .attributes = UAC_EP_CS_ATTR_SAMPLE_RATE, .endpoint = 0x06, .ep_attr = USB_ENDPOINT_XFER_ISOC, .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000, .rate_min = 48000, .rate_max = 96000, .nr_rates = 2, .rate_table = (unsigned int[]) { 48000, 96000 } } }, { .ifnum = 2, .type = QUIRK_AUDIO_FIXED_ENDPOINT, .data = &(const struct audioformat) { .formats = SNDRV_PCM_FMTBIT_S24_3LE, .channels = 4, .iface = 2, .altsetting = 1, .altset_idx = 1, .attributes = UAC_EP_CS_ATTR_SAMPLE_RATE, .endpoint = 0x82, .ep_attr = USB_ENDPOINT_XFER_ISOC, .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000, .rate_min = 48000, .rate_max = 96000, .nr_rates = 2, .rate_table = (unsigned int[]) { 48000, 96000 } } }, { .ifnum = -1, } } } }, Sincerely, Tuukka 05.07.2015, 20:32, Clemens Ladisch kirjoitti: > Tuukka Pasanen wrote: >> I've been hacking to get Rane SL-4 USB audio ... to work with ALSA. >> I have compiled kernel and tried to get USB-quirks to work with this ... it doesn't do the trick >> If I need interface association how to do that? > The interface association descriptor should have been provided by the firmware. > > Anyway, try the following quirk: > > { > USB_DEVICE(0x1cc5, 0x000f), > .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 = 1, > .type = QUIRK_AUDIO_STANDARD_INTERFACE > }, > { > .ifnum = 2, > .type = QUIRK_AUDIO_STANDARD_INTERFACE > }, > { > .ifnum = -1, > } > } > } > }, > > > Regards, > Clemens ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Rane SL-4 USB sound card 2015-07-05 17:32 ` Clemens Ladisch 2015-07-06 10:15 ` Tuukka Pasanen @ 2015-07-06 12:42 ` Tuukka Pasanen 2015-07-06 13:07 ` Clemens Ladisch 1 sibling, 1 reply; 11+ messages in thread From: Tuukka Pasanen @ 2015-07-06 12:42 UTC (permalink / raw) To: Clemens Ladisch, alsa-devel Hello, Thanks you for you reply. That did the trick almost. It only gives sysdefault with two channels and error: [176317.418587] usb 1-5: parse_audio_format_rates_v2(): unable to retrieve number of sample rates (clock 5) [176317.419156] usb 1-5: parse_audio_format_rates_v2(): unable to retrieve number of sample rates (clock 5) I figured out this kind of QUIRK which seems to be working (go to test tomorrow more). I would go with first quirck as it's looking simpler but I can't add rates to it? { USB_DEVICE(0x1cc5, 0x000f), .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 = 1, .type = QUIRK_AUDIO_FIXED_ENDPOINT, .data = &(const struct audioformat) { .formats = SNDRV_PCM_FMTBIT_S24_3LE, .channels = 4, .iface = 1, .altsetting = 1, .altset_idx = 1, .attributes = UAC_EP_CS_ATTR_SAMPLE_RATE, .endpoint = 0x06, .ep_attr = USB_ENDPOINT_XFER_ISOC, .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000, .rate_min = 48000, .rate_max = 96000, .nr_rates = 2, .rate_table = (unsigned int[]) { 48000, 96000 } } }, { .ifnum = 2, .type = QUIRK_AUDIO_FIXED_ENDPOINT, .data = &(const struct audioformat) { .formats = SNDRV_PCM_FMTBIT_S24_3LE, .channels = 4, .iface = 2, .altsetting = 1, .altset_idx = 1, .attributes = UAC_EP_CS_ATTR_SAMPLE_RATE, .endpoint = 0x82, .ep_attr = USB_ENDPOINT_XFER_ISOC, .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000, .rate_min = 48000, .rate_max = 96000, .nr_rates = 2, .rate_table = (unsigned int[]) { 48000, 96000 } } }, { .ifnum = -1, } } } }, Sincerely, Tuukka 05.07.2015, 20:32, Clemens Ladisch kirjoitti: > Tuukka Pasanen wrote: >> I've been hacking to get Rane SL-4 USB audio ... to work with ALSA. >> I have compiled kernel and tried to get USB-quirks to work with this ... it doesn't do the trick >> If I need interface association how to do that? > The interface association descriptor should have been provided by the firmware. > > Anyway, try the following quirk: > > { > USB_DEVICE(0x1cc5, 0x000f), > .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 = 1, > .type = QUIRK_AUDIO_STANDARD_INTERFACE > }, > { > .ifnum = 2, > .type = QUIRK_AUDIO_STANDARD_INTERFACE > }, > { > .ifnum = -1, > } > } > } > }, > > > Regards, > Clemens ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Rane SL-4 USB sound card 2015-07-06 12:42 ` Tuukka Pasanen @ 2015-07-06 13:07 ` Clemens Ladisch 2015-07-06 13:39 ` Tuukka Pasanen 2015-07-07 5:37 ` Tuukka Pasanen 0 siblings, 2 replies; 11+ messages in thread From: Clemens Ladisch @ 2015-07-06 13:07 UTC (permalink / raw) To: Tuukka Pasanen, alsa-devel Tuukka Pasanen wrote: > [176317.418587] usb 1-5: parse_audio_format_rates_v2(): unable to retrieve number of sample rates (clock 5) So it doesn't actually conform with the audio class. > I figured out this kind of QUIRK which seems to be working (go to test tomorrow more). Hmm, the descriptors claim it uses S24_LE ... Do all channels work? Does it correctly switch between 48/96 kHz? Is it possible to use different rates for playback/capture? Regards, Clemens ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Rane SL-4 USB sound card 2015-07-06 13:07 ` Clemens Ladisch @ 2015-07-06 13:39 ` Tuukka Pasanen 2015-07-07 5:37 ` Tuukka Pasanen 1 sibling, 0 replies; 11+ messages in thread From: Tuukka Pasanen @ 2015-07-06 13:39 UTC (permalink / raw) To: Clemens Ladisch, alsa-devel Hello, Thank you that 24_LE. I'll test tommorrow and find answers to there questions. I'll think that 48/96 won't work because it seems to be behind that HID.. but that this after I get sound out and in. Tuukka 06.07.2015, 16:07, Clemens Ladisch kirjoitti: > Tuukka Pasanen wrote: >> [176317.418587] usb 1-5: parse_audio_format_rates_v2(): unable to retrieve number of sample rates (clock 5) > So it doesn't actually conform with the audio class. > >> I figured out this kind of QUIRK which seems to be working (go to test tomorrow more). > Hmm, the descriptors claim it uses S24_LE ... > > Do all channels work? > Does it correctly switch between 48/96 kHz? > Is it possible to use different rates for playback/capture? > > > Regards, > Clemens ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Rane SL-4 USB sound card 2015-07-06 13:07 ` Clemens Ladisch 2015-07-06 13:39 ` Tuukka Pasanen @ 2015-07-07 5:37 ` Tuukka Pasanen 2015-07-07 7:23 ` Clemens Ladisch 1 sibling, 1 reply; 11+ messages in thread From: Tuukka Pasanen @ 2015-07-07 5:37 UTC (permalink / raw) To: Clemens Ladisch, alsa-devel Hello, I've tested Quirck and it worked (at least channels 1-2 input/output) fine when changed S24_LE. Problem is that currently it doesn't have Mixer so pulseaudio or jackd can't see it without .asoundrc. I digged little bit mixer_map.c but didn't get it working. Sincerely, Tuukka 06.07.2015, 16:07, Clemens Ladisch kirjoitti: > Tuukka Pasanen wrote: >> [176317.418587] usb 1-5: parse_audio_format_rates_v2(): unable to retrieve number of sample rates (clock 5) > So it doesn't actually conform with the audio class. > >> I figured out this kind of QUIRK which seems to be working (go to test tomorrow more). > Hmm, the descriptors claim it uses S24_LE ... > > Do all channels work? > Does it correctly switch between 48/96 kHz? > Is it possible to use different rates for playback/capture? > > > Regards, > Clemens ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Rane SL-4 USB sound card 2015-07-07 5:37 ` Tuukka Pasanen @ 2015-07-07 7:23 ` Clemens Ladisch 2015-07-07 7:59 ` Tuukka Pasanen 2015-07-07 11:50 ` Tuukka Pasanen 0 siblings, 2 replies; 11+ messages in thread From: Clemens Ladisch @ 2015-07-07 7:23 UTC (permalink / raw) To: Tuukka Pasanen, alsa-devel Tuukka Pasanen wrote: > I've tested Quirck and it worked (at least channels 1-2 input/output) fine when changed S24_LE. > Problem is that currently it doesn't have Mixer According to the descriptors, it does not have mixer controls. Does the Windows driver have mixer controls that affect the hardware? > so pulseaudio or jackd can't see it without .asoundrc. That should make no difference. Regards, Clemens ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Rane SL-4 USB sound card 2015-07-07 7:23 ` Clemens Ladisch @ 2015-07-07 7:59 ` Tuukka Pasanen 2015-07-07 11:50 ` Tuukka Pasanen 1 sibling, 0 replies; 11+ messages in thread From: Tuukka Pasanen @ 2015-07-07 7:59 UTC (permalink / raw) To: Clemens Ladisch, alsa-devel Hello, No it doesn't. Hmm... I got to examine this more because even Yast2 cant see this or alsaconf.. Tuukka 07.07.2015, 10:23, Clemens Ladisch kirjoitti: > Tuukka Pasanen wrote: >> I've tested Quirck and it worked (at least channels 1-2 input/output) fine when changed S24_LE. >> Problem is that currently it doesn't have Mixer > According to the descriptors, it does not have mixer controls. > Does the Windows driver have mixer controls that affect the hardware? > >> so pulseaudio or jackd can't see it without .asoundrc. > That should make no difference. > > > Regards, > Clemens ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Rane SL-4 USB sound card 2015-07-07 7:23 ` Clemens Ladisch 2015-07-07 7:59 ` Tuukka Pasanen @ 2015-07-07 11:50 ` Tuukka Pasanen 2015-07-07 15:05 ` Clemens Ladisch 1 sibling, 1 reply; 11+ messages in thread From: Tuukka Pasanen @ 2015-07-07 11:50 UTC (permalink / raw) To: Clemens Ladisch, alsa-devel Hello, More digging on this. Pulseaudio and jackd (portaudio) are supporting 24_3LE (Tree byte) that is why they didn't work with 24_LE. Is 24_LE just 32_LE (4 bytes) and first byte is just zeroed? If that is so I can use 32_LE and applications just work? Sincerely, Tuukka 07.07.2015, 10:23, Clemens Ladisch kirjoitti: > Tuukka Pasanen wrote: >> I've tested Quirck and it worked (at least channels 1-2 input/output) fine when changed S24_LE. >> Problem is that currently it doesn't have Mixer > According to the descriptors, it does not have mixer controls. > Does the Windows driver have mixer controls that affect the hardware? > >> so pulseaudio or jackd can't see it without .asoundrc. > That should make no difference. > > > Regards, > Clemens ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Rane SL-4 USB sound card 2015-07-07 11:50 ` Tuukka Pasanen @ 2015-07-07 15:05 ` Clemens Ladisch 0 siblings, 0 replies; 11+ messages in thread From: Clemens Ladisch @ 2015-07-07 15:05 UTC (permalink / raw) To: Tuukka Pasanen, alsa-devel Tuukka Pasanen wrote: > Pulseaudio and jackd (portaudio) are supporting 24_3LE (Tree byte) that is why they didn't work with 24_LE. Sorry, S24_LE is completely wrong; that should have been S32_LE. Regards, Clemens ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2015-07-07 15:05 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-07-04 9:38 Rane SL-4 USB sound card Tuukka Pasanen 2015-07-05 17:32 ` Clemens Ladisch 2015-07-06 10:15 ` Tuukka Pasanen 2015-07-06 12:42 ` Tuukka Pasanen 2015-07-06 13:07 ` Clemens Ladisch 2015-07-06 13:39 ` Tuukka Pasanen 2015-07-07 5:37 ` Tuukka Pasanen 2015-07-07 7:23 ` Clemens Ladisch 2015-07-07 7:59 ` Tuukka Pasanen 2015-07-07 11:50 ` Tuukka Pasanen 2015-07-07 15:05 ` Clemens Ladisch
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.