alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* Zoom R16
@ 2013-11-22 18:12 Jason Mancine
  2013-11-22 20:31 ` Jason Mancine
  2013-11-24 13:03 ` Daniel Mack
  0 siblings, 2 replies; 19+ messages in thread
From: Jason Mancine @ 2013-11-22 18:12 UTC (permalink / raw)
  To: alsa-devel

Hello, I am looking for some assistance in getting the Zoom R16 working for
playback.  Please let me know if this is the right forum for this...

The device is recognized, but I just can't figure out which interface is
which, and how to configure them in quirks-table.h.   Any help would be
appreciated.


To start, the output of lsusb -v for the device is this:
 ---

Bus 001 Device 010: ID 1686:00dd ZOOM Corporation
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          255 Vendor Specific Class
  bDeviceSubClass         0
  bDeviceProtocol       255
  bMaxPacketSize0        64
  idVendor           0x1686 ZOOM Corporation
  idProduct          0x00dd
  bcdDevice            0.02
  iManufacturer           1
  iProduct                2 R16
  iSerial                 3 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          259
    bNumInterfaces          4
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              480mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      1
      bInterfaceProtocol      0
      iInterface              0
      ** UNRECOGNIZED:  0b 24 01 00 01 35 00 03 01 02 03
      ** UNRECOGNIZED:  0c 24 02 05 01 01 00 02 03 00 00 00
      ** UNRECOGNIZED:  09 24 03 08 01 03 00 05 00
      ** UNRECOGNIZED:  0c 24 02 09 01 02 00 08 00 00 00 00
      ** UNRECOGNIZED:  09 24 03 0c 01 01 00 09 00
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      2
      bInterfaceProtocol      0
      iInterface              0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      2
      bInterfaceProtocol      0
      iInterface              0
      ** UNRECOGNIZED:  07 24 01 05 01 01 00
      ** UNRECOGNIZED:  14 24 02 01 02 04 18 04 44 ac 00 80 bb 00 88 58 01
00 77 01
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            9
          Transfer Type            Isochronous
          Synch Type               Adaptive
          Usage Type               Data
        wMaxPacketSize     0x006c  1x 108 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      2
      bInterfaceProtocol      0
      iInterface              0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      2
      bInterfaceProtocol      0
      iInterface              0
      ** UNRECOGNIZED:  07 24 01 0c 01 01 00
      ** UNRECOGNIZED:  14 24 02 01 08 04 18 04 44 ac 00 80 bb 00 88 58 01
00 77 01
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes           13
          Transfer Type            Isochronous
          Synch Type               Synchronous
          Usage Type               Data
        wMaxPacketSize     0x01a0  1x 416 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      3
      bInterfaceProtocol      0
      iInterface              0
      ** UNRECOGNIZED:  07 24 01 00 01 41 00
      ** UNRECOGNIZED:  06 24 02 01 01 00
      ** UNRECOGNIZED:  06 24 02 02 02 00
      ** UNRECOGNIZED:  09 24 03 01 03 01 02 01 00
      ** UNRECOGNIZED:  09 24 03 02 04 01 01 01 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass          255 Vendor Specific Class
  bDeviceSubClass         0
  bDeviceProtocol       255
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0001
  Self Powered

---

This is the quirk that Clemens provided on the linux-audio mail list...the
device is recognized, but no capture/playback:

{
        /* ZOOM R16 in USB 2.0 mode */
        USB_DEVICE(0x1686, 0x00dd),
        .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_IGNORE_INTERFACE
                        },
                        {
                                .ifnum = 1,
                                .type = QUIRK_AUDIO_STANDARD_INTERFACE
                        },
                        {
                                .ifnum = 2,
                                .type = QUIRK_AUDIO_STANDARD_INTERFACE
                        },
                        {
                                .ifnum = 3,
                                .type = QUIRK_MIDI_STANDARD_INTERFACE
                        },
                        {
                                .ifnum = .1
                        },
                }
        }
},





Now....despite there being no #4 interface in lsusb, if I append the
following to the above quirk I get all 8 channels of capture working.  I am
more confused than ever. :)

      {
            .ifnum = 4,
            .type = QUIRK_AUDIO_FIXED_ENDPOINT,
            .data = & (const struct audioformat) {
               .formats = SNDRV_PCM_FMTBIT_S24_LE,
               .channels = 8,
               .iface = 1,
               .altsetting = 1,
               .altset_idx = 1,
               .attributes = UAC_EP_CS_ATTR_SAMPLE_RATE,
                .endpoint = 0x84,
                .ep_attr = 13,
                .rates = SNDRV_PCM_RATE_44100 |
                    SNDRV_PCM_RATE_48000 |
                    SNDRV_PCM_RATE_88200 |
                  SNDRV_PCM_RATE_96000,
               .rate_min = 44100,
               .rate_max = 96000,
               .nr_rates = 4,
               .rate_table = (unsigned int[]) {
                     44100, 48000, 88200, 96000
               }
            }
         },


Obviously, this is not the correct solution and I can't make playback work
by adding additional .ifnums.    I am quite certain that interface 1 is
capture and 2 is playback but if I add the same info to either of those
sections my entire system freezes when I plug in the device.

Thanks,
jason

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Zoom R16
  2013-11-22 18:12 Zoom R16 Jason Mancine
@ 2013-11-22 20:31 ` Jason Mancine
  2013-11-24 13:03 ` Daniel Mack
  1 sibling, 0 replies; 19+ messages in thread
From: Jason Mancine @ 2013-11-22 20:31 UTC (permalink / raw)
  To: alsa-devel

Well, I solved part of my own problem -- by removing the .endpoint and 
.ep_addr settings from the quirk it now works for capture under .ifnum=1. In 
fact, I now see the interface in JACK listed as hw:R16(#1) which it never 
had done before. 

MIDI is also working properly on .ifnum=3

So, I am now certain that interface 2 is playback...  however, playback does 
not work with the following:

{ 
                                .ifnum = 2, 
                                .type = QUIRK_AUDIO_FIXED_ENDPOINT, 
                                .data = & (const struct audioformat) { 
                                        .formats = SNDRV_PCM_FMTBIT_S24_LE, 
                                        .channels = 2, 
                                        .iface = 1, 
                                        .altsetting = 1, 
                                        .altset_idx = 1, 
                                        .attributes = 
UAC_EP_CS_ATTR_SAMPLE_RATE, 
                                        .rates = SNDRV_PCM_RATE_44100 | 
                                                 SNDRV_PCM_RATE_48000 | 
                                                 SNDRV_PCM_RATE_88200 | 
                                                 SNDRV_PCM_RATE_96000, 
                                        .rate_min = 44100, 
                                        .rate_max = 96000, 
                                        .nr_rates = 4, 
                                        .rate_table = (unsigned int[]) { 
                                                        44100, 48000, 88200, 
96000 
                                        } 
                                } 
                        }, 


This totally freezes the computer...  I am certain that the device is 24 
bit, supports all four sample rates, and is capable of full duplex 
operation.  Any suggestions for this playback section?

Thanks,
Jason

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Zoom R16
  2013-11-22 18:12 Zoom R16 Jason Mancine
  2013-11-22 20:31 ` Jason Mancine
@ 2013-11-24 13:03 ` Daniel Mack
       [not found]   ` <CAPrbH=tGph7__rgx-5BsBSi9-E95FpsTL9Yy0zbum0TccTPbyQ@mail.gmail.com>
  1 sibling, 1 reply; 19+ messages in thread
From: Daniel Mack @ 2013-11-24 13:03 UTC (permalink / raw)
  To: Jason Mancine; +Cc: alsa-devel

On Fri, Nov 22, 2013 at 01:12:17PM -0500, Jason Mancine wrote:
> Hello, I am looking for some assistance in getting the Zoom R16 working for
> playback.  Please let me know if this is the right forum for this...
> 
> The device is recognized, but I just can't figure out which interface is
> which, and how to configure them in quirks-table.h.   Any help would be
> appreciated.

Please try with a recent kernel and see if something like this in
quirks-table.h helps you:

{
        .match_flags = USB_DEVICE_ID_MATCH_VENDOR |
                       USB_DEVICE_ID_MATCH_INT_CLASS,
        .idVendor = 0x1686,
        .bInterfaceClass = USB_CLASS_VENDOR_SPEC,
        .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
                .ifnum = QUIRK_ANY_INTERFACE,
                .type = QUIRK_AUTODETECT
        }
},



Daniel


> To start, the output of lsusb -v for the device is this:
>  ---
> 
> Bus 001 Device 010: ID 1686:00dd ZOOM Corporation
> Device Descriptor:
>   bLength                18
>   bDescriptorType         1
>   bcdUSB               2.00
>   bDeviceClass          255 Vendor Specific Class
>   bDeviceSubClass         0
>   bDeviceProtocol       255
>   bMaxPacketSize0        64
>   idVendor           0x1686 ZOOM Corporation
>   idProduct          0x00dd
>   bcdDevice            0.02
>   iManufacturer           1
>   iProduct                2 R16
>   iSerial                 3 0
>   bNumConfigurations      1
>   Configuration Descriptor:
>     bLength                 9
>     bDescriptorType         2
>     wTotalLength          259
>     bNumInterfaces          4
>     bConfigurationValue     1
>     iConfiguration          0
>     bmAttributes         0x80
>       (Bus Powered)
>     MaxPower              480mA
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        0
>       bAlternateSetting       0
>       bNumEndpoints           0
>       bInterfaceClass       255 Vendor Specific Class
>       bInterfaceSubClass      1
>       bInterfaceProtocol      0
>       iInterface              0
>       ** UNRECOGNIZED:  0b 24 01 00 01 35 00 03 01 02 03
>       ** UNRECOGNIZED:  0c 24 02 05 01 01 00 02 03 00 00 00
>       ** UNRECOGNIZED:  09 24 03 08 01 03 00 05 00
>       ** UNRECOGNIZED:  0c 24 02 09 01 02 00 08 00 00 00 00
>       ** UNRECOGNIZED:  09 24 03 0c 01 01 00 09 00
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        1
>       bAlternateSetting       0
>       bNumEndpoints           0
>       bInterfaceClass       255 Vendor Specific Class
>       bInterfaceSubClass      2
>       bInterfaceProtocol      0
>       iInterface              0
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        1
>       bAlternateSetting       1
>       bNumEndpoints           1
>       bInterfaceClass       255 Vendor Specific Class
>       bInterfaceSubClass      2
>       bInterfaceProtocol      0
>       iInterface              0
>       ** UNRECOGNIZED:  07 24 01 05 01 01 00
>       ** UNRECOGNIZED:  14 24 02 01 02 04 18 04 44 ac 00 80 bb 00 88 58 01
> 00 77 01
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x03  EP 3 OUT
>         bmAttributes            9
>           Transfer Type            Isochronous
>           Synch Type               Adaptive
>           Usage Type               Data
>         wMaxPacketSize     0x006c  1x 108 bytes
>         bInterval               1
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        2
>       bAlternateSetting       0
>       bNumEndpoints           0
>       bInterfaceClass       255 Vendor Specific Class
>       bInterfaceSubClass      2
>       bInterfaceProtocol      0
>       iInterface              0
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        2
>       bAlternateSetting       1
>       bNumEndpoints           1
>       bInterfaceClass       255 Vendor Specific Class
>       bInterfaceSubClass      2
>       bInterfaceProtocol      0
>       iInterface              0
>       ** UNRECOGNIZED:  07 24 01 0c 01 01 00
>       ** UNRECOGNIZED:  14 24 02 01 08 04 18 04 44 ac 00 80 bb 00 88 58 01
> 00 77 01
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x84  EP 4 IN
>         bmAttributes           13
>           Transfer Type            Isochronous
>           Synch Type               Synchronous
>           Usage Type               Data
>         wMaxPacketSize     0x01a0  1x 416 bytes
>         bInterval               1
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        3
>       bAlternateSetting       0
>       bNumEndpoints           2
>       bInterfaceClass       255 Vendor Specific Class
>       bInterfaceSubClass      3
>       bInterfaceProtocol      0
>       iInterface              0
>       ** UNRECOGNIZED:  07 24 01 00 01 41 00
>       ** UNRECOGNIZED:  06 24 02 01 01 00
>       ** UNRECOGNIZED:  06 24 02 02 02 00
>       ** UNRECOGNIZED:  09 24 03 01 03 01 02 01 00
>       ** UNRECOGNIZED:  09 24 03 02 04 01 01 01 00
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x01  EP 1 OUT
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0040  1x 64 bytes
>         bInterval               0
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x82  EP 2 IN
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0040  1x 64 bytes
>         bInterval               0
> Device Qualifier (for other device speed):
>   bLength                10
>   bDescriptorType         6
>   bcdUSB               2.00
>   bDeviceClass          255 Vendor Specific Class
>   bDeviceSubClass         0
>   bDeviceProtocol       255
>   bMaxPacketSize0        64
>   bNumConfigurations      1
> Device Status:     0x0001
>   Self Powered
> 
> ---
> 
> This is the quirk that Clemens provided on the linux-audio mail list...the
> device is recognized, but no capture/playback:
> 
> {
>         /* ZOOM R16 in USB 2.0 mode */
>         USB_DEVICE(0x1686, 0x00dd),
>         .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_IGNORE_INTERFACE
>                         },
>                         {
>                                 .ifnum = 1,
>                                 .type = QUIRK_AUDIO_STANDARD_INTERFACE
>                         },
>                         {
>                                 .ifnum = 2,
>                                 .type = QUIRK_AUDIO_STANDARD_INTERFACE
>                         },
>                         {
>                                 .ifnum = 3,
>                                 .type = QUIRK_MIDI_STANDARD_INTERFACE
>                         },
>                         {
>                                 .ifnum = .1
>                         },
>                 }
>         }
> },
> 
> 
> 
> 
> 
> Now....despite there being no #4 interface in lsusb, if I append the
> following to the above quirk I get all 8 channels of capture working.  I am
> more confused than ever. :)
> 
>       {
>             .ifnum = 4,
>             .type = QUIRK_AUDIO_FIXED_ENDPOINT,
>             .data = & (const struct audioformat) {
>                .formats = SNDRV_PCM_FMTBIT_S24_LE,
>                .channels = 8,
>                .iface = 1,
>                .altsetting = 1,
>                .altset_idx = 1,
>                .attributes = UAC_EP_CS_ATTR_SAMPLE_RATE,
>                 .endpoint = 0x84,
>                 .ep_attr = 13,
>                 .rates = SNDRV_PCM_RATE_44100 |
>                     SNDRV_PCM_RATE_48000 |
>                     SNDRV_PCM_RATE_88200 |
>                   SNDRV_PCM_RATE_96000,
>                .rate_min = 44100,
>                .rate_max = 96000,
>                .nr_rates = 4,
>                .rate_table = (unsigned int[]) {
>                      44100, 48000, 88200, 96000
>                }
>             }
>          },
> 
> 
> Obviously, this is not the correct solution and I can't make playback work
> by adding additional .ifnums.    I am quite certain that interface 1 is
> capture and 2 is playback but if I add the same info to either of those
> sections my entire system freezes when I plug in the device.
> 
> Thanks,
> jason
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Zoom R16
       [not found]     ` <20131124141803.GC23126@tamtam.fritz.box>
@ 2013-11-26 18:22       ` Jason Mancine
  2013-11-28 14:42         ` Jason Mancine
  0 siblings, 1 reply; 19+ messages in thread
From: Jason Mancine @ 2013-11-26 18:22 UTC (permalink / raw)
  To: Daniel Mack, alsa-devel

Can't seem to compile 3.11 or 3.12 for the distro I am using (AVLInux)...
tested it in Ubuntu Studio 13.10 and the quirk didn't seem to have any
effect.  The output of lsusb is the same, but the device doesn't show up as
a sound card.


On Sun, Nov 24, 2013 at 9:18 AM, Daniel Mack <daniel@zonque.org> wrote:

> On Sun, Nov 24, 2013 at 09:03:47AM -0500, Jason Mancine wrote:
> > Thanks, I will give it a try.  By recent kernel do you mean latest
> mainline
> > or should my distro's 3.6.11 be new enough?
>
> Anything >= 3.11 should do.
>
> In further replies, please do not drop the alsa-devel mailing list.
>
>
> Thanks,
> Daniel
>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Zoom R16
  2013-11-26 18:22       ` Jason Mancine
@ 2013-11-28 14:42         ` Jason Mancine
  2013-11-28 14:50           ` Jason Mancine
  0 siblings, 1 reply; 19+ messages in thread
From: Jason Mancine @ 2013-11-28 14:42 UTC (permalink / raw)
  To: Daniel Mack, alsa-devel

I was able to compile 3.11.9 for AVLinux.  The quirk does not work, dmesg
returns this:

[   40.759383] usb 2-8: New USB device found, idVendor=1686, idProduct=00dd
[   40.759387] usb 2-8: New USB device strings: Mfr=1, Product=2,
SerialNumber=3
[   40.759390] usb 2-8: Product: R16
[   40.759393] usb 2-8: Manufacturer: ZOOM Corporation
[   40.759396] usb 2-8: SerialNumber: 0
[   40.760214] snd-usb-audio: probe of 2-8:1.0 failed with error -5
[   45.760206] 6:1:1: cannot get freq at ep 0x3
[   55.761231] 6:2:1: cannot get freq at ep 0x84




On Tue, Nov 26, 2013 at 1:22 PM, Jason Mancine <jason@mancine.net> wrote:

> Can't seem to compile 3.11 or 3.12 for the distro I am using (AVLInux)...
> tested it in Ubuntu Studio 13.10 and the quirk didn't seem to have any
> effect.  The output of lsusb is the same, but the device doesn't show up as
> a sound card.
>
>
> On Sun, Nov 24, 2013 at 9:18 AM, Daniel Mack <daniel@zonque.org> wrote:
>
>> On Sun, Nov 24, 2013 at 09:03:47AM -0500, Jason Mancine wrote:
>> > Thanks, I will give it a try.  By recent kernel do you mean latest
>> mainline
>> > or should my distro's 3.6.11 be new enough?
>>
>> Anything >= 3.11 should do.
>>
>> In further replies, please do not drop the alsa-devel mailing list.
>>
>>
>> Thanks,
>> Daniel
>>
>
>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Zoom R16
  2013-11-28 14:42         ` Jason Mancine
@ 2013-11-28 14:50           ` Jason Mancine
  2013-12-06 16:10             ` Jason Mancine
  0 siblings, 1 reply; 19+ messages in thread
From: Jason Mancine @ 2013-11-28 14:50 UTC (permalink / raw)
  To: Daniel Mack, alsa-devel

Actually, after a few more tries it DOES work for capture... but fails on
playback just as it did with my original quirk.

Here are logs from a playback-only attempt.  Looks like there are some
packetsize errors and failing to set sample rate for playback

DMESG:

[  319.651037] usb 2-8: new high-speed USB device number 10 using ehci-pci
[  319.959768] usb 2-8: config 1 interface 3 altsetting 0 bulk endpoint 0x1
has invalid maxpacket 64
[  319.959773] usb 2-8: config 1 interface 3 altsetting 0 bulk endpoint
0x82 has invalid maxpacket 64
[  319.960512] usb 2-8: New USB device found, idVendor=1686, idProduct=00dd
[  319.960516] usb 2-8: New USB device strings: Mfr=1, Product=2,
SerialNumber=3
[  319.960519] usb 2-8: Product: R16
[  319.960522] usb 2-8: Manufacturer: ZOOM Corporation
[  319.960525] usb 2-8: SerialNumber: 0
[  319.961397] snd-usb-audio: probe of 2-8:1.0 failed with error -5
[  324.962217] 10:1:1: cannot get freq at ep 0x3
[  334.963237] 10:2:1: cannot get freq at ep 0x84
[  360.798326] 10:1:1: cannot get freq at ep 0x3
[  365.803274] 10:1:1: cannot set freq 96000 to ep 0x3
[  387.266266] 10:2:1: cannot get freq at ep 0x84
[  392.272214] 10:2:1: cannot get freq at ep 0x84
[  413.894325] 10:1:1: cannot get freq at ep 0x3
[  418.899271] 10:1:1: cannot set freq 96000 to ep 0x3



JACK LOG:

 loading driver ..

apparent rate = 96000

creating alsa driver ... -|hw:R16|1024|2|96000|8|0|nomon|swmeter|-|32bit

configuring for 96000Hz, period = 1024 frames (10.7 ms), buffer = 2 periods

ALSA: final selected sample format for capture: 32bit integer little-endian

ALSA: use 2 periods for capture

09:45:13.982 Server configuration saved to "/root/.jackdrc".

09:45:13.983 Statistics reset.

09:45:13.993 Client activated.

09:45:13.996 Buffer size change (0).

09:45:16.971 Buffer size change (1024).

09:45:16.972 JACK connection graph change.

09:45:16.997 JACK connection change.

09:45:28.900 Client deactivated.

09:45:28.903 JACK is stopping...

jack main caught signal 15

no message buffer overruns

09:45:33.936 JACK was stopped successfully.

09:45:38.539 JACK is starting...

09:45:38.539 /usr/bin/jackd -dalsa -dhw:R16 -r96000 -p1024 -n2 -P -o2

jackd 0.122.1

Copyright 2001-2009 Paul Davis, Stephane Letz, Jack O'Quinn, Torben Hohn
and others.

jackd comes with ABSOLUTELY NO WARRANTY

This is free software, and you are welcome to redistribute it

under certain conditions; see the file COPYING for details

JACK compiled with System V SHM support.

09:45:38.570 JACK was started with PID=2919.

loading driver ..

apparent rate = 96000

creating alsa driver ... hw:R16|-|1024|2|96000|0|2|nomon|swmeter|-|32bit

configuring for 96000Hz, period = 1024 frames (10.7 ms), buffer = 2 periods

ALSA: final selected sample format for playback: 32bit integer little-endian

ALSA: use 2 periods for playback

09:45:40.660 Server configuration saved to "/root/.jackdrc".

09:45:40.661 Statistics reset.

09:45:40.671 Client activated.

09:45:40.674 Buffer size change (0).

09:45:43.600 Buffer size change (1024).

09:45:43.601 JACK connection graph change.

09:45:43.675 JACK connection change.

ALSA: prepare error for playback on "hw:R16" (Connection timed out)

DRIVER NT: could not start driver

cannot start driver

no message buffer overruns

09:45:48.627 Shutdown notification.

09:45:48.628 Client deactivated.

09:45:48.631 JACK is being forced...

cannot read server event (Success)

cannot continue execution of the processing graph (Bad file descriptor)

graph error - calling shutdown handler

09:45:48.831 JACK was stopped successfully.

Thanks



On Thu, Nov 28, 2013 at 9:42 AM, Jason Mancine <jason@mancine.net> wrote:

> I was able to compile 3.11.9 for AVLinux.  The quirk does not work, dmesg
> returns this:
>
> [   40.759383] usb 2-8: New USB device found, idVendor=1686, idProduct=00dd
> [   40.759387] usb 2-8: New USB device strings: Mfr=1, Product=2,
> SerialNumber=3
> [   40.759390] usb 2-8: Product: R16
> [   40.759393] usb 2-8: Manufacturer: ZOOM Corporation
> [   40.759396] usb 2-8: SerialNumber: 0
> [   40.760214] snd-usb-audio: probe of 2-8:1.0 failed with error -5
> [   45.760206] 6:1:1: cannot get freq at ep 0x3
> [   55.761231] 6:2:1: cannot get freq at ep 0x84
>
>
>
>
> On Tue, Nov 26, 2013 at 1:22 PM, Jason Mancine <jason@mancine.net> wrote:
>
>> Can't seem to compile 3.11 or 3.12 for the distro I am using (AVLInux)...
>> tested it in Ubuntu Studio 13.10 and the quirk didn't seem to have any
>> effect.  The output of lsusb is the same, but the device doesn't show up as
>> a sound card.
>>
>>
>> On Sun, Nov 24, 2013 at 9:18 AM, Daniel Mack <daniel@zonque.org> wrote:
>>
>>> On Sun, Nov 24, 2013 at 09:03:47AM -0500, Jason Mancine wrote:
>>> > Thanks, I will give it a try.  By recent kernel do you mean latest
>>> mainline
>>> > or should my distro's 3.6.11 be new enough?
>>>
>>> Anything >= 3.11 should do.
>>>
>>> In further replies, please do not drop the alsa-devel mailing list.
>>>
>>>
>>> Thanks,
>>> Daniel
>>>
>>
>>
>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Zoom R16
  2013-11-28 14:50           ` Jason Mancine
@ 2013-12-06 16:10             ` Jason Mancine
  2013-12-06 16:25               ` Takashi Iwai
  0 siblings, 1 reply; 19+ messages in thread
From: Jason Mancine @ 2013-12-06 16:10 UTC (permalink / raw)
  To: alsa-devel

It seems that ALSA is trying to initialize the device at 32-bit integer
little endian despite having the .formats set to SNDRV_PCM_FMTBIT_S24_LE in
the quirk. The device is 24-bit integer only.  Other devices I have
initialize properly at 24 bits.

Perhaps capture works because the device is running at 24 bits and sending
info into the 32 bit driver... and playback fails because the driver is
trying to force the device to operate at 32 bits, which it is incapable of???

Is there another/better way to force the bitrate to 24 bits?

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Zoom R16
  2013-12-06 16:10             ` Jason Mancine
@ 2013-12-06 16:25               ` Takashi Iwai
  2013-12-06 17:28                 ` Jason Mancine
  0 siblings, 1 reply; 19+ messages in thread
From: Takashi Iwai @ 2013-12-06 16:25 UTC (permalink / raw)
  To: Jason Mancine; +Cc: alsa-devel

At Fri, 6 Dec 2013 16:10:01 +0000 (UTC),
Jason Mancine wrote:
> 
> It seems that ALSA is trying to initialize the device at 32-bit integer
> little endian despite having the .formats set to SNDRV_PCM_FMTBIT_S24_LE in
> the quirk. The device is 24-bit integer only.  Other devices I have
> initialize properly at 24 bits.

Do you mean the 24bit physical size, i.e. each frame is packed in 3
bytes?  If so, you used a wrong format.  SNDRV_PCM_FMTBIT_S24_LE is
for 24bit format packed in 32bit frame.  If you need a 3-bytes frame,
use SNDRV_PCM_FMTBIT_S24_3LE instead.


Takashi

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Zoom R16
  2013-12-06 16:25               ` Takashi Iwai
@ 2013-12-06 17:28                 ` Jason Mancine
  2014-03-10 14:36                   ` Jason Mancine
  0 siblings, 1 reply; 19+ messages in thread
From: Jason Mancine @ 2013-12-06 17:28 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

With it set to 3LE format it fails on both capture and playback, and is
still trying to initialize at 32 bits for both.

Any other formats I could try?
 On Dec 6, 2013 11:25 AM, "Takashi Iwai" <tiwai@suse.de> wrote:

> At Fri, 6 Dec 2013 16:10:01 +0000 (UTC),
> Jason Mancine wrote:
> >
> > It seems that ALSA is trying to initialize the device at 32-bit integer
> > little endian despite having the .formats set to SNDRV_PCM_FMTBIT_S24_LE
> in
> > the quirk. The device is 24-bit integer only.  Other devices I have
> > initialize properly at 24 bits.
>
> Do you mean the 24bit physical size, i.e. each frame is packed in 3
> bytes?  If so, you used a wrong format.  SNDRV_PCM_FMTBIT_S24_LE is
> for 24bit format packed in 32bit frame.  If you need a 3-bytes frame,
> use SNDRV_PCM_FMTBIT_S24_3LE instead.
>
>
> Takashi
>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Zoom R16
  2013-12-06 17:28                 ` Jason Mancine
@ 2014-03-10 14:36                   ` Jason Mancine
  2014-03-10 20:28                     ` Alan Horstmann
  0 siblings, 1 reply; 19+ messages in thread
From: Jason Mancine @ 2014-03-10 14:36 UTC (permalink / raw)
  To: alsa-devel

I am still working on trying to get the R16 to work for playback.   The
problem is that no matter what .formats setting I use, ALSA sets the R16 to
32 bit LE (the R16 operates at 24 bit integer only).   This is fine for
capture as the R16 is sending a 24 bit stream into a 24-in-32 ALSA
capture... but for playback, the 32 bit ALSA stream chokes when it hits the
24 bit integer R16 device.

So, the main question is how do I force ALSA to initialize this device at
24 bit integer?

For the record, here is the quirk that I am working with (working for
capture, recognized for playback but crashes on data).   Thanks for any
suggestions.


{
        /* ZOOM R16 in USB 2.0 mode */
        USB_DEVICE(0x1686, 0x00dd),
        .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_IGNORE_INTERFACE
                        },

                       {
                                .ifnum = 1,  /*PLAYBACK*/
                                .type = QUIRK_AUDIO_FIXED_ENDPOINT,
                                .data = & (const struct audioformat) {
                                .formats = SNDRV_PCM_FMTBIT_S24_LE,
                                .channels = 2,
                                .iface = 0,
                                .altsetting = 1,
                                 altset_idx = 1,
                                .attributes = UAC_EP_CS_ATTR_SAMPLE_RATE,
                                .endpoint = 0x03,
                                .ep_attr = 9,
                                .rates = SNDRV_PCM_RATE_44100 |
                                      SNDRV_PCM_RATE_48000 |
                                      SNDRV_PCM_RATE_88200 |
                                      SNDRV_PCM_RATE_96000,
                               .rate_min = 44100,
                               .rate_max = 96000,
                               .nr_rates = 4,
                               .rate_table = (unsigned int[]) {
                                44100, 48000, 88200, 96000
                                 }
                              }
                           },

                        {
                               .ifnum = 2,  /*CAPTURE*/
                              .type = QUIRK_AUDIO_FIXED_ENDPOINT,
                              .data = & (const struct audioformat) {
                                 .formats = SNDRV_PCM_FMTBIT_S24_LE,
                                 .channels = 8,
                                 .iface = 0,
                                 .altsetting = 1,
                                 .altset_idx = 1,
                                 .attributes = UAC_EP_CS_ATTR_SAMPLE_RATE,
                                  .endpoint = 0x84,
                                  .ep_attr = 13,
                                  .rates = SNDRV_PCM_RATE_44100 |
                                          SNDRV_PCM_RATE_48000 |
                                        SNDRV_PCM_RATE_88200 |
                                             SNDRV_PCM_RATE_96000,
                                .rate_min = 44100,
                                 .rate_max = 96000,
                                 .nr_rates = 4,
                                 .rate_table = (unsigned int[]) {
                                       44100, 48000, 88200, 96000
                                 }
                              }
                           },

                        {
                                .ifnum = 3,
                                .type = QUIRK_MIDI_STANDARD_INTERFACE
                        },


                        {
                                .ifnum = .1
                        },


                        }

        }

},





On Fri, Dec 6, 2013 at 12:28 PM, Jason Mancine <jason@mancine.net> wrote:

> With it set to 3LE format it fails on both capture and playback, and is
> still trying to initialize at 32 bits for both.
>
> Any other formats I could try?
>  On Dec 6, 2013 11:25 AM, "Takashi Iwai" <tiwai@suse.de> wrote:
>
>> At Fri, 6 Dec 2013 16:10:01 +0000 (UTC),
>> Jason Mancine wrote:
>> >
>> > It seems that ALSA is trying to initialize the device at 32-bit integer
>> > little endian despite having the .formats set to
>> SNDRV_PCM_FMTBIT_S24_LE in
>> > the quirk. The device is 24-bit integer only.  Other devices I have
>> > initialize properly at 24 bits.
>>
>> Do you mean the 24bit physical size, i.e. each frame is packed in 3
>> bytes?  If so, you used a wrong format.  SNDRV_PCM_FMTBIT_S24_LE is
>> for 24bit format packed in 32bit frame.  If you need a 3-bytes frame,
>> use SNDRV_PCM_FMTBIT_S24_3LE instead.
>>
>>
>> Takashi
>>
>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Zoom R16
  2014-03-10 14:36                   ` Jason Mancine
@ 2014-03-10 20:28                     ` Alan Horstmann
  2014-03-10 20:44                       ` Jason Mancine
  0 siblings, 1 reply; 19+ messages in thread
From: Alan Horstmann @ 2014-03-10 20:28 UTC (permalink / raw)
  To: alsa-devel; +Cc: Jason Mancine

On Monday 10 March 2014 14:36, Jason Mancine wrote:
> I am still working on trying to get the R16 to work for playback.

> So, the main question is how do I force ALSA to initialize this device at
> 24 bit integer?

Isn't the answer in Takashi's original reply...?

> >  On Dec 6, 2013 11:25 AM, "Takashi Iwai" <tiwai@suse.de> wrote:
> >> Do you mean the 24bit physical size, i.e. each frame is packed in 3
> >> bytes?  If so, you used a wrong format.  SNDRV_PCM_FMTBIT_S24_LE is
> >> for 24bit format packed in 32bit frame.  If you need a 3-bytes frame,
> >> use SNDRV_PCM_FMTBIT_S24_3LE instead.

Many USB devices have this...

>                                 .type = QUIRK_AUDIO_FIXED_ENDPOINT,
>                                 .data = & (const struct audioformat) {
>                                 .formats = SNDRV_PCM_FMTBIT_S24_LE,

                                 .formats = SNDRV_PCM_FMTBIT_S24_3LE,

instead.  That would apply for capture also.  Or is that what you have been 
trying?

Regards

Alan

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Zoom R16
  2014-03-10 20:28                     ` Alan Horstmann
@ 2014-03-10 20:44                       ` Jason Mancine
  2014-03-11  7:09                         ` Takashi Iwai
  0 siblings, 1 reply; 19+ messages in thread
From: Jason Mancine @ 2014-03-10 20:44 UTC (permalink / raw)
  To: Alan Horstmann; +Cc: alsa-devel

Yes, I have tried those .formats with no luck...it still initializes at 32
On Mar 10, 2014 4:29 PM, "Alan Horstmann" <gineera@aspect135.co.uk> wrote:

> On Monday 10 March 2014 14:36, Jason Mancine wrote:
> > I am still working on trying to get the R16 to work for playback.
>
> > So, the main question is how do I force ALSA to initialize this device at
> > 24 bit integer?
>
> Isn't the answer in Takashi's original reply...?
>
> > >  On Dec 6, 2013 11:25 AM, "Takashi Iwai" <tiwai@suse.de> wrote:
> > >> Do you mean the 24bit physical size, i.e. each frame is packed in 3
> > >> bytes?  If so, you used a wrong format.  SNDRV_PCM_FMTBIT_S24_LE is
> > >> for 24bit format packed in 32bit frame.  If you need a 3-bytes frame,
> > >> use SNDRV_PCM_FMTBIT_S24_3LE instead.
>
> Many USB devices have this...
>
> >                                 .type = QUIRK_AUDIO_FIXED_ENDPOINT,
> >                                 .data = & (const struct audioformat) {
> >                                 .formats = SNDRV_PCM_FMTBIT_S24_LE,
>
>                                  .formats = SNDRV_PCM_FMTBIT_S24_3LE,
>
> instead.  That would apply for capture also.  Or is that what you have been
> trying?
>
> Regards
>
> Alan
>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Zoom R16
  2014-03-10 20:44                       ` Jason Mancine
@ 2014-03-11  7:09                         ` Takashi Iwai
  2014-03-11  7:59                           ` Jason Mancine
  0 siblings, 1 reply; 19+ messages in thread
From: Takashi Iwai @ 2014-03-11  7:09 UTC (permalink / raw)
  To: Jason Mancine; +Cc: alsa-devel

At Mon, 10 Mar 2014 16:44:19 -0400,
Jason Mancine wrote:
> 
> Yes, I have tried those .formats with no luck...it still initializes at 32

How did you check it?


Takashi

> On Mar 10, 2014 4:29 PM, "Alan Horstmann" <gineera@aspect135.co.uk> wrote:
> 
> > On Monday 10 March 2014 14:36, Jason Mancine wrote:
> > > I am still working on trying to get the R16 to work for playback.
> >
> > > So, the main question is how do I force ALSA to initialize this device at
> > > 24 bit integer?
> >
> > Isn't the answer in Takashi's original reply...?
> >
> > > >  On Dec 6, 2013 11:25 AM, "Takashi Iwai" <tiwai@suse.de> wrote:
> > > >> Do you mean the 24bit physical size, i.e. each frame is packed in 3
> > > >> bytes?  If so, you used a wrong format.  SNDRV_PCM_FMTBIT_S24_LE is
> > > >> for 24bit format packed in 32bit frame.  If you need a 3-bytes frame,
> > > >> use SNDRV_PCM_FMTBIT_S24_3LE instead.
> >
> > Many USB devices have this...
> >
> > >                                 .type = QUIRK_AUDIO_FIXED_ENDPOINT,
> > >                                 .data = & (const struct audioformat) {
> > >                                 .formats = SNDRV_PCM_FMTBIT_S24_LE,
> >
> >                                  .formats = SNDRV_PCM_FMTBIT_S24_3LE,
> >
> > instead.  That would apply for capture also.  Or is that what you have been
> > trying?
> >
> > Regards
> >
> > Alan
> >
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> 

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Zoom R16
  2014-03-11  7:09                         ` Takashi Iwai
@ 2014-03-11  7:59                           ` Jason Mancine
  2014-03-11  8:13                             ` Takashi Iwai
  0 siblings, 1 reply; 19+ messages in thread
From: Jason Mancine @ 2014-03-11  7:59 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

recompiled the kernel for each format
On Mar 11, 2014 3:09 AM, "Takashi Iwai" <tiwai@suse.de> wrote:

> At Mon, 10 Mar 2014 16:44:19 -0400,
> Jason Mancine wrote:
> >
> > Yes, I have tried those .formats with no luck...it still initializes at
> 32
>
> How did you check it?
>
>
> Takashi
>
> > On Mar 10, 2014 4:29 PM, "Alan Horstmann" <gineera@aspect135.co.uk>
> wrote:
> >
> > > On Monday 10 March 2014 14:36, Jason Mancine wrote:
> > > > I am still working on trying to get the R16 to work for playback.
> > >
> > > > So, the main question is how do I force ALSA to initialize this
> device at
> > > > 24 bit integer?
> > >
> > > Isn't the answer in Takashi's original reply...?
> > >
> > > > >  On Dec 6, 2013 11:25 AM, "Takashi Iwai" <tiwai@suse.de> wrote:
> > > > >> Do you mean the 24bit physical size, i.e. each frame is packed in
> 3
> > > > >> bytes?  If so, you used a wrong format.  SNDRV_PCM_FMTBIT_S24_LE
> is
> > > > >> for 24bit format packed in 32bit frame.  If you need a 3-bytes
> frame,
> > > > >> use SNDRV_PCM_FMTBIT_S24_3LE instead.
> > >
> > > Many USB devices have this...
> > >
> > > >                                 .type = QUIRK_AUDIO_FIXED_ENDPOINT,
> > > >                                 .data = & (const struct audioformat)
> {
> > > >                                 .formats = SNDRV_PCM_FMTBIT_S24_LE,
> > >
> > >                                  .formats = SNDRV_PCM_FMTBIT_S24_3LE,
> > >
> > > instead.  That would apply for capture also.  Or is that what you have
> been
> > > trying?
> > >
> > > Regards
> > >
> > > Alan
> > >
> > _______________________________________________
> > Alsa-devel mailing list
> > Alsa-devel@alsa-project.org
> > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> >
>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Zoom R16
  2014-03-11  7:59                           ` Jason Mancine
@ 2014-03-11  8:13                             ` Takashi Iwai
  2014-03-11 13:34                               ` Jason Mancine
  0 siblings, 1 reply; 19+ messages in thread
From: Takashi Iwai @ 2014-03-11  8:13 UTC (permalink / raw)
  To: Jason Mancine; +Cc: alsa-devel

At Tue, 11 Mar 2014 03:59:06 -0400,
Jason Mancine wrote:
> 
> recompiled the kernel for each format

My question is how did you check that the 32bit format is used.
And, don't do top-posting.


Takashi

> On Mar 11, 2014 3:09 AM, "Takashi Iwai" <tiwai@suse.de> wrote:
> 
> > At Mon, 10 Mar 2014 16:44:19 -0400,
> > Jason Mancine wrote:
> > >
> > > Yes, I have tried those .formats with no luck...it still initializes at
> > 32
> >
> > How did you check it?
> >
> >
> > Takashi
> >
> > > On Mar 10, 2014 4:29 PM, "Alan Horstmann" <gineera@aspect135.co.uk>
> > wrote:
> > >
> > > > On Monday 10 March 2014 14:36, Jason Mancine wrote:
> > > > > I am still working on trying to get the R16 to work for playback.
> > > >
> > > > > So, the main question is how do I force ALSA to initialize this
> > device at
> > > > > 24 bit integer?
> > > >
> > > > Isn't the answer in Takashi's original reply...?
> > > >
> > > > > >  On Dec 6, 2013 11:25 AM, "Takashi Iwai" <tiwai@suse.de> wrote:
> > > > > >> Do you mean the 24bit physical size, i.e. each frame is packed in
> > 3
> > > > > >> bytes?  If so, you used a wrong format.  SNDRV_PCM_FMTBIT_S24_LE
> > is
> > > > > >> for 24bit format packed in 32bit frame.  If you need a 3-bytes
> > frame,
> > > > > >> use SNDRV_PCM_FMTBIT_S24_3LE instead.
> > > >
> > > > Many USB devices have this...
> > > >
> > > > >                                 .type = QUIRK_AUDIO_FIXED_ENDPOINT,
> > > > >                                 .data = & (const struct audioformat)
> > {
> > > > >                                 .formats = SNDRV_PCM_FMTBIT_S24_LE,
> > > >
> > > >                                  .formats = SNDRV_PCM_FMTBIT_S24_3LE,
> > > >
> > > > instead.  That would apply for capture also.  Or is that what you have
> > been
> > > > trying?
> > > >
> > > > Regards
> > > >
> > > > Alan
> > > >
> > > _______________________________________________
> > > Alsa-devel mailing list
> > > Alsa-devel@alsa-project.org
> > > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> > >
> >
> [2  <text/html; ISO-8859-1 (quoted-printable)>]
> 

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Zoom R16
  2014-03-11  8:13                             ` Takashi Iwai
@ 2014-03-11 13:34                               ` Jason Mancine
  2014-03-11 13:40                                 ` Takashi Iwai
  0 siblings, 1 reply; 19+ messages in thread
From: Jason Mancine @ 2014-03-11 13:34 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

> My question is how did you check that the 32bit format is used.
> And, don't do top-posting.
>
>
> Takashi

Sorry, i am unsure how to not top post when replying via email.

With capture and playback .formats set to SNDRV_PCM_FMTBIT_S24_3LE, jack
log shows:

ALSA: final selected sample format for playback:  32bit integer
little-endian

and

/proc/asound/R16/stream0  shows:

Playback:
  Status: Stop
  Interface 1
    Altset 1
    Format: S32_LE
    Channels: 2
    Endpoint: 3 OUT (ADAPTIVE)
    Rates: 44100, 48000, 88200, 96000
    Data packet interval: 125 us

Capture:
  Status: Stop
  Interface 2
    Altset 1
    Format: S32_LE
    Channels: 8
    Endpoint: 4 IN (SYNC)
    Rates: 44100, 48000, 88200, 96000
    Data packet interval: 125 us



> > On Mar 11, 2014 3:09 AM, "Takashi Iwai" <tiwai@suse.de> wrote:
> >
> > > At Mon, 10 Mar 2014 16:44:19 -0400,
> > > Jason Mancine wrote:
> > > >
> > > > Yes, I have tried those .formats with no luck...it still
initializes at
> > > 32
> > >
> > > How did you check it?
> > >
> > >
> > > Takashi
> > >
> > > > On Mar 10, 2014 4:29 PM, "Alan Horstmann" <gineera@aspect135.co.uk>
> > > wrote:
> > > >
> > > > > On Monday 10 March 2014 14:36, Jason Mancine wrote:
> > > > > > I am still working on trying to get the R16 to work for
playback.
> > > > >
> > > > > > So, the main question is how do I force ALSA to initialize this
> > > device at
> > > > > > 24 bit integer?
> > > > >
> > > > > Isn't the answer in Takashi's original reply...?
> > > > >
> > > > > > >  On Dec 6, 2013 11:25 AM, "Takashi Iwai" <tiwai@suse.de>
wrote:
> > > > > > >> Do you mean the 24bit physical size, i.e. each frame is
packed in
> > > 3
> > > > > > >> bytes?  If so, you used a wrong format.
 SNDRV_PCM_FMTBIT_S24_LE
> > > is
> > > > > > >> for 24bit format packed in 32bit frame.  If you need a
3-bytes
> > > frame,
> > > > > > >> use SNDRV_PCM_FMTBIT_S24_3LE instead.
> > > > >
> > > > > Many USB devices have this...
> > > > >
> > > > > >                                 .type =
QUIRK_AUDIO_FIXED_ENDPOINT,
> > > > > >                                 .data = & (const struct
audioformat)
> > > {
> > > > > >                                 .formats =
SNDRV_PCM_FMTBIT_S24_LE,
> > > > >
> > > > >                                  .formats =
SNDRV_PCM_FMTBIT_S24_3LE,
> > > > >
> > > > > instead.  That would apply for capture also.  Or is that what you
have
> > > been
> > > > > trying?
> > > > >
> > > > > Regards
> > > > >
> > > > > Alan
> > > > >
> > > > _______________________________________________
> > > > Alsa-devel mailing list
> > > > Alsa-devel@alsa-project.org
> > > > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> > > >
> > >
> > [2  <text/html; ISO-8859-1 (quoted-printable)>]
> >

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Zoom R16
  2014-03-11 13:34                               ` Jason Mancine
@ 2014-03-11 13:40                                 ` Takashi Iwai
  2014-03-11 15:16                                   ` Jason Mancine
  0 siblings, 1 reply; 19+ messages in thread
From: Takashi Iwai @ 2014-03-11 13:40 UTC (permalink / raw)
  To: Jason Mancine; +Cc: alsa-devel

At Tue, 11 Mar 2014 09:34:14 -0400,
Jason Mancine wrote:
> 
> > My question is how did you check that the 32bit format is used.
> > And, don't do top-posting.
> >
> >
> > Takashi
> 
> Sorry, i am unsure how to not top post when replying via email.
> 
> With capture and playback .formats set to SNDRV_PCM_FMTBIT_S24_3LE, jack
> log shows:
> 
> ALSA: final selected sample format for playback:  32bit integer
> little-endian
> 
> and
> 
> /proc/asound/R16/stream0  shows:
> 
> Playback:
>   Status: Stop
>   Interface 1
>     Altset 1
>     Format: S32_LE
>     Channels: 2
>     Endpoint: 3 OUT (ADAPTIVE)
>     Rates: 44100, 48000, 88200, 96000
>     Data packet interval: 125 us
> 
> Capture:
>   Status: Stop
>   Interface 2
>     Altset 1
>     Format: S32_LE
>     Channels: 8
>     Endpoint: 4 IN (SYNC)
>     Rates: 44100, 48000, 88200, 96000
>     Data packet interval: 125 us

And are you sure that you patched correctly?  For example, if you
change the available rates in addition, does the patched kernel also
show the same change?


Takashi

> 
> 
> 
> > > On Mar 11, 2014 3:09 AM, "Takashi Iwai" <tiwai@suse.de> wrote:
> > >
> > > > At Mon, 10 Mar 2014 16:44:19 -0400,
> > > > Jason Mancine wrote:
> > > > >
> > > > > Yes, I have tried those .formats with no luck...it still
> initializes at
> > > > 32
> > > >
> > > > How did you check it?
> > > >
> > > >
> > > > Takashi
> > > >
> > > > > On Mar 10, 2014 4:29 PM, "Alan Horstmann" <gineera@aspect135.co.uk>
> > > > wrote:
> > > > >
> > > > > > On Monday 10 March 2014 14:36, Jason Mancine wrote:
> > > > > > > I am still working on trying to get the R16 to work for
> playback.
> > > > > >
> > > > > > > So, the main question is how do I force ALSA to initialize this
> > > > device at
> > > > > > > 24 bit integer?
> > > > > >
> > > > > > Isn't the answer in Takashi's original reply...?
> > > > > >
> > > > > > > >  On Dec 6, 2013 11:25 AM, "Takashi Iwai" <tiwai@suse.de>
> wrote:
> > > > > > > >> Do you mean the 24bit physical size, i.e. each frame is
> packed in
> > > > 3
> > > > > > > >> bytes?  If so, you used a wrong format.
>  SNDRV_PCM_FMTBIT_S24_LE
> > > > is
> > > > > > > >> for 24bit format packed in 32bit frame.  If you need a
> 3-bytes
> > > > frame,
> > > > > > > >> use SNDRV_PCM_FMTBIT_S24_3LE instead.
> > > > > >
> > > > > > Many USB devices have this...
> > > > > >
> > > > > > >                                 .type =
> QUIRK_AUDIO_FIXED_ENDPOINT,
> > > > > > >                                 .data = & (const struct
> audioformat)
> > > > {
> > > > > > >                                 .formats =
> SNDRV_PCM_FMTBIT_S24_LE,
> > > > > >
> > > > > >                                  .formats =
> SNDRV_PCM_FMTBIT_S24_3LE,
> > > > > >
> > > > > > instead.  That would apply for capture also.  Or is that what you
> have
> > > > been
> > > > > > trying?
> > > > > >
> > > > > > Regards
> > > > > >
> > > > > > Alan
> > > > > >
> > > > > _______________________________________________
> > > > > Alsa-devel mailing list
> > > > > Alsa-devel@alsa-project.org
> > > > > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> > > > >
> > > >
> > > [2  <text/html; ISO-8859-1 (quoted-printable)>]
> > >
> [2  <text/html; ISO-8859-1 (quoted-printable)>]
> 

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Zoom R16
  2014-03-11 13:40                                 ` Takashi Iwai
@ 2014-03-11 15:16                                   ` Jason Mancine
  2014-03-11 15:32                                     ` Takashi Iwai
  0 siblings, 1 reply; 19+ messages in thread
From: Jason Mancine @ 2014-03-11 15:16 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

On Mar 11, 2014 9:40 AM, "Takashi Iwai" <tiwai@suse.de> wrote:
>

> And are you sure that you patched correctly?  For example, if you
> change the available rates in addition, does the patched kernel also
> show the same change?
>
>
> Takashi

Just verified only 96000 shows as available when I omit the other rates
from the quirk.

FWIW, other users at linux audio forum are seeing the same result of ending
up with S32_LE regardless of .formats setting.

But with capture working, wondering if it is possible that the S32_LE is
indeed the correct format, and the playback problem is something else...
one user is investigating possible wrong UAC version.  There are get/set
sample rate errors on playback as well.

Thanks for your help, any ideas are appreciated!

jason

>
> >
> >
> >
> > > > On Mar 11, 2014 3:09 AM, "Takashi Iwai" <tiwai@suse.de> wrote:
> > > >
> > > > > At Mon, 10 Mar 2014 16:44:19 -0400,
> > > > > Jason Mancine wrote:
> > > > > >
> > > > > > Yes, I have tried those .formats with no luck...it still
> > initializes at
> > > > > 32
> > > > >
> > > > > How did you check it?
> > > > >
> > > > >
> > > > > Takashi
> > > > >
> > > > > > On Mar 10, 2014 4:29 PM, "Alan Horstmann" <
gineera@aspect135.co.uk>
> > > > > wrote:
> > > > > >
> > > > > > > On Monday 10 March 2014 14:36, Jason Mancine wrote:
> > > > > > > > I am still working on trying to get the R16 to work for
> > playback.
> > > > > > >
> > > > > > > > So, the main question is how do I force ALSA to initialize
this
> > > > > device at
> > > > > > > > 24 bit integer?
> > > > > > >
> > > > > > > Isn't the answer in Takashi's original reply...?
> > > > > > >
> > > > > > > > >  On Dec 6, 2013 11:25 AM, "Takashi Iwai" <tiwai@suse.de>
> > wrote:
> > > > > > > > >> Do you mean the 24bit physical size, i.e. each frame is
> > packed in
> > > > > 3
> > > > > > > > >> bytes?  If so, you used a wrong format.
> >  SNDRV_PCM_FMTBIT_S24_LE
> > > > > is
> > > > > > > > >> for 24bit format packed in 32bit frame.  If you need a
> > 3-bytes
> > > > > frame,
> > > > > > > > >> use SNDRV_PCM_FMTBIT_S24_3LE instead.
> > > > > > >
> > > > > > > Many USB devices have this...
> > > > > > >
> > > > > > > >                                 .type =
> > QUIRK_AUDIO_FIXED_ENDPOINT,
> > > > > > > >                                 .data = & (const struct
> > audioformat)
> > > > > {
> > > > > > > >                                 .formats =
> > SNDRV_PCM_FMTBIT_S24_LE,
> > > > > > >
> > > > > > >                                  .formats =
> > SNDRV_PCM_FMTBIT_S24_3LE,
> > > > > > >
> > > > > > > instead.  That would apply for capture also.  Or is that what
you
> > have
> > > > > been
> > > > > > > trying?
> > > > > > >
> > > > > > > Regards
> > > > > > >
> > > > > > > Alan
> > > > > > >
> > > > > > _______________________________________________
> > > > > > Alsa-devel mailing list
> > > > > > Alsa-devel@alsa-project.org
> > > > > > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> > > > > >
> > > > >
> > > > [2  <text/html; ISO-8859-1 (quoted-printable)>]
> > > >
> > [2  <text/html; ISO-8859-1 (quoted-printable)>]
> >

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Zoom R16
  2014-03-11 15:16                                   ` Jason Mancine
@ 2014-03-11 15:32                                     ` Takashi Iwai
  0 siblings, 0 replies; 19+ messages in thread
From: Takashi Iwai @ 2014-03-11 15:32 UTC (permalink / raw)
  To: Jason Mancine; +Cc: alsa-devel

At Tue, 11 Mar 2014 11:16:04 -0400,
Jason Mancine wrote:
> 
> On Mar 11, 2014 9:40 AM, "Takashi Iwai" <tiwai@suse.de> wrote:
> >
> 
> > And are you sure that you patched correctly?  For example, if you
> > change the available rates in addition, does the patched kernel also
> > show the same change?
> >
> >
> > Takashi
> 
> Just verified only 96000 shows as available when I omit the other rates
> from the quirk.

Then try to add more format bits there and see whether the proc file
shows them, too.  If the proc file doesn't show, debug why it doesn't
do so.  The proc output (in proc__dump_substream_formats()) is
basically a collection of audioformat list, which is added directly by
create_fixed_stream_quirk().

At this moment, it doesn't matter what jack shows.  The only thing to
be checked is whether the driver takes the value as is or not.

> FWIW, other users at linux audio forum are seeing the same result of ending
> up with S32_LE regardless of .formats setting.

Do you mean in proc or jack output?

> But with capture working, wondering if it is possible that the S32_LE is
> indeed the correct format, and the playback problem is something else...

Possibly.  But you must figure out what you're debugging at first.


Takashi

> one user is investigating possible wrong UAC version.  There are get/set
> sample rate errors on playback as well.
> 
> Thanks for your help, any ideas are appreciated!
> 
> jason
> 
> >
> > >
> > >
> > >
> > > > > On Mar 11, 2014 3:09 AM, "Takashi Iwai" <tiwai@suse.de> wrote:
> > > > >
> > > > > > At Mon, 10 Mar 2014 16:44:19 -0400,
> > > > > > Jason Mancine wrote:
> > > > > > >
> > > > > > > Yes, I have tried those .formats with no luck...it still
> > > initializes at
> > > > > > 32
> > > > > >
> > > > > > How did you check it?
> > > > > >
> > > > > >
> > > > > > Takashi
> > > > > >
> > > > > > > On Mar 10, 2014 4:29 PM, "Alan Horstmann" <
> gineera@aspect135.co.uk>
> > > > > > wrote:
> > > > > > >
> > > > > > > > On Monday 10 March 2014 14:36, Jason Mancine wrote:
> > > > > > > > > I am still working on trying to get the R16 to work for
> > > playback.
> > > > > > > >
> > > > > > > > > So, the main question is how do I force ALSA to initialize
> this
> > > > > > device at
> > > > > > > > > 24 bit integer?
> > > > > > > >
> > > > > > > > Isn't the answer in Takashi's original reply...?
> > > > > > > >
> > > > > > > > > >  On Dec 6, 2013 11:25 AM, "Takashi Iwai" <tiwai@suse.de>
> > > wrote:
> > > > > > > > > >> Do you mean the 24bit physical size, i.e. each frame is
> > > packed in
> > > > > > 3
> > > > > > > > > >> bytes?  If so, you used a wrong format.
> > >  SNDRV_PCM_FMTBIT_S24_LE
> > > > > > is
> > > > > > > > > >> for 24bit format packed in 32bit frame.  If you need a
> > > 3-bytes
> > > > > > frame,
> > > > > > > > > >> use SNDRV_PCM_FMTBIT_S24_3LE instead.
> > > > > > > >
> > > > > > > > Many USB devices have this...
> > > > > > > >
> > > > > > > > >                                 .type =
> > > QUIRK_AUDIO_FIXED_ENDPOINT,
> > > > > > > > >                                 .data = & (const struct
> > > audioformat)
> > > > > > {
> > > > > > > > >                                 .formats =
> > > SNDRV_PCM_FMTBIT_S24_LE,
> > > > > > > >
> > > > > > > >                                  .formats =
> > > SNDRV_PCM_FMTBIT_S24_3LE,
> > > > > > > >
> > > > > > > > instead.  That would apply for capture also.  Or is that what
> you
> > > have
> > > > > > been
> > > > > > > > trying?
> > > > > > > >
> > > > > > > > Regards
> > > > > > > >
> > > > > > > > Alan
> > > > > > > >
> > > > > > > _______________________________________________
> > > > > > > Alsa-devel mailing list
> > > > > > > Alsa-devel@alsa-project.org
> > > > > > > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> > > > > > >
> > > > > >
> > > > > [2  <text/html; ISO-8859-1 (quoted-printable)>]
> > > > >
> > > [2  <text/html; ISO-8859-1 (quoted-printable)>]
> > >
> [2  <text/html; ISO-8859-1 (quoted-printable)>]
> 

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2014-03-11 15:32 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-11-22 18:12 Zoom R16 Jason Mancine
2013-11-22 20:31 ` Jason Mancine
2013-11-24 13:03 ` Daniel Mack
     [not found]   ` <CAPrbH=tGph7__rgx-5BsBSi9-E95FpsTL9Yy0zbum0TccTPbyQ@mail.gmail.com>
     [not found]     ` <20131124141803.GC23126@tamtam.fritz.box>
2013-11-26 18:22       ` Jason Mancine
2013-11-28 14:42         ` Jason Mancine
2013-11-28 14:50           ` Jason Mancine
2013-12-06 16:10             ` Jason Mancine
2013-12-06 16:25               ` Takashi Iwai
2013-12-06 17:28                 ` Jason Mancine
2014-03-10 14:36                   ` Jason Mancine
2014-03-10 20:28                     ` Alan Horstmann
2014-03-10 20:44                       ` Jason Mancine
2014-03-11  7:09                         ` Takashi Iwai
2014-03-11  7:59                           ` Jason Mancine
2014-03-11  8:13                             ` Takashi Iwai
2014-03-11 13:34                               ` Jason Mancine
2014-03-11 13:40                                 ` Takashi Iwai
2014-03-11 15:16                                   ` Jason Mancine
2014-03-11 15:32                                     ` Takashi Iwai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).