Scarlett 18i20 gen 3 Linux - Crackling Audio

Talk about your MIDI interfaces, microphones, keyboards...

Moderators: khz, MattKingUSA

Post Reply
lapsio
Established Member
Posts: 39
Joined: Thu Sep 01, 2016 7:34 am

Scarlett 18i20 gen 3 Linux - Crackling Audio

Post by lapsio »

Hello

I recently bought Scarlett 18i20 since I needed some multi-channel interface with balanced outputs. Unfortunately it doesn't seem to work well with Linux (I tried multiple Linux distros on multiple PCs and laptops, even in different locations to rule out power and interference problems and they all have the same issue). Every so often (every few seconds or less) I hear some tiny cracks. It kinda sounds a bit like single xrun but there's no xruns reported by JACK so I decided to try if it's gonna get better if it'll be the only USB device connected to PC - but that didn't change anything.

I found this thread on Steinberg forum where dude reports really similar problem for Steinberg UR824 which is really similar device in many aspects so I think we ran into the same issue:
https://www.steinberg.net/forums/viewto ... 7&t=102350

And just like for him - in my case also interface works properly when I dualboot to Windows so it's Linux-only issue. On machine with kernel 4.6 I'm connecting interface straight to USB 2.0 in motherboard (desktop PC) and I also tried front facing USB ports (no difference). On Laptop with kernel 5.2 I tried connecting it to both USB 3.1 type A and Thunderbolt 3 port (usb 3.1 type c mode) since laptop doesn't have any USB 2.0 ports. But there's no difference - the same issue.

On JACK side I tried:
  • - changing buffer size
    - changing periods number
    - changing resolution from 22050 Hz to 192 kHz
    - forcing 16 bit
    - forcing lower number of allocated channels (10x10 instead of 18x20)
    - toggling hardware monitoring
    - changing dithering mode (I don't know what it really does tho)
And nothing helps (reducing number of channels helps in a way that it allows me to change resolution above 48 kHz which is not possible in full 18+20 mode probably due to USB bandwidth limitations but it doesn't affect cracling). I think when I changed to 192 kHz cracks changed a bit their sound but other than that nothing changed and on all resolutions starting from 96 kHz below it sounds exactly the same.

Cracks are music-dependent so I couldn't really tell whether any of those settings made problem more or less apparent (when music is regular like lets say solo violin or just plain sine wave then it's not that noticeable but if music gets "busy" as in harsh like some rock or electronic music then it's more apparent) but for sure none of those settings made it significantly better up to point I'd say it was dramatically better.

I wanted to test Steinberg UR824 instead but considering person in mentioned thread has the same issue with UR824 I doubt it's good idea.

puleglot
Established Member
Posts: 113
Joined: Thu Jan 23, 2020 3:14 pm

Re: Scarlett 18i20 gen 3 Linux - Crackling Audio

Post by puleglot »

This sounds like a synchronization issue. This could be an incorrect synchronization type in usb descriptors (like with Scarlett Solo 2nd gen), or maybe the device is using an implicit feedback. Could you post lsusb -v -d output for this device?

lapsio
Established Member
Posts: 39
Joined: Thu Sep 01, 2016 7:34 am

Re: Scarlett 18i20 gen 3 Linux - Crackling Audio

Post by lapsio »

bitsnpcs wrote:
Sun Mar 15, 2020 1:15 am
...
Like I said i tried multiple ports in multiple machines. I also heard that for some people it was simply usb port so I wanted to be sure it's not just that. I also tried multiple cables to rule out damaged cable.

lapsio
Established Member
Posts: 39
Joined: Thu Sep 01, 2016 7:34 am

Re: Scarlett 18i20 gen 3 Linux - Crackling Audio

Post by lapsio »

puleglot wrote:
Sun Mar 15, 2020 9:30 am
This sounds like a synchronization issue. This could be an incorrect synchronization type in usb descriptors (like with Scarlett Solo 2nd gen), or maybe the device is using an implicit feedback. Could you post lsusb -v -d output for this device?
aplay -l

Code: Select all

**** List of PLAYBACK Hardware Devices ****
card 0: D2 [Xonar D2], device 0: Multichannel [Multichannel]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: D2 [Xonar D2], device 1: Digital [Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: PCH [HDA Intel PCH], device 0: ALC892 Analog [ALC892 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: PCH [HDA Intel PCH], device 1: ALC892 Digital [ALC892 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 3: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 3: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 3: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 3: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 4: USB [Scarlett 18i20 USB], device 0: USB Audio [USB Audio]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
aplay -L

Code: Select all

null
    Discard all samples (playback) or generate zero samples (capture)
pulse
    PulseAudio Sound Server
default
    Default ALSA Output (currently PulseAudio Sound Server)
sysdefault:CARD=D2
    Xonar D2, Multichannel
    Default Audio Device
front:CARD=D2,DEV=0
    Xonar D2, Multichannel
    Front speakers
surround21:CARD=D2,DEV=0
    Xonar D2, Multichannel
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=D2,DEV=0
    Xonar D2, Multichannel
    4.0 Surround output to Front and Rear speakers
surround41:CARD=D2,DEV=0
    Xonar D2, Multichannel
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=D2,DEV=0
    Xonar D2, Multichannel
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=D2,DEV=0
    Xonar D2, Multichannel
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=D2,DEV=0
    Xonar D2, Multichannel
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=D2,DEV=0
    Xonar D2, Multichannel
    IEC958 (S/PDIF) Digital Audio Output
sysdefault:CARD=PCH
    HDA Intel PCH, ALC892 Analog
    Default Audio Device
front:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    Front speakers
surround21:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Digital
    IEC958 (S/PDIF) Digital Audio Output
hdmi:CARD=NVidia,DEV=0
    HDA NVidia, HDMI 0
    HDMI Audio Output
hdmi:CARD=NVidia,DEV=1
    HDA NVidia, HDMI 1
    HDMI Audio Output
hdmi:CARD=NVidia,DEV=2
    HDA NVidia, HDMI 2
    HDMI Audio Output
hdmi:CARD=NVidia,DEV=3
    HDA NVidia, HDMI 3
    HDMI Audio Output
sysdefault:CARD=USB
    Scarlett 18i20 USB, USB Audio
    Default Audio Device
front:CARD=USB,DEV=0
    Scarlett 18i20 USB, USB Audio
    Front speakers
surround21:CARD=USB,DEV=0
    Scarlett 18i20 USB, USB Audio
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=USB,DEV=0
    Scarlett 18i20 USB, USB Audio
    4.0 Surround output to Front and Rear speakers
surround41:CARD=USB,DEV=0
    Scarlett 18i20 USB, USB Audio
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=USB,DEV=0
    Scarlett 18i20 USB, USB Audio
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=USB,DEV=0
    Scarlett 18i20 USB, USB Audio
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=USB,DEV=0
    Scarlett 18i20 USB, USB Audio
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=USB,DEV=0
    Scarlett 18i20 USB, USB Audio
    IEC958 (S/PDIF) Digital Audio Output
pacmd list-sinks (the same issue occurs when device is used with pulseaudio or even plain ALSA)

Code: Select all

    index: 3
        name: <alsa_output.usb-Focusrite_Scarlett_18i20_USB_P993THZ9A04D6E-00-USB.multichannel>
        driver: <module-alsa-card.c>
        flags: HARDWARE DECIBEL_VOLUME LATENCY FLAT_VOLUME 
        state: SUSPENDED
        suspend cause: IDLE 
        priority: 9040
        volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB,   rear-left: 65536 / 100% / 0.00 dB,   rear-right: 65536 / 100% / 0.00 dB,   front-center: 65536 / 100% / 0.00 dB,   lfe: 65536 / 100% / 0.00 dB,   side-left: 65536 / 100% / 0.00 dB,   side-right: 65536 / 100% / 0.00 dB,   aux0: 65536 / 100% / 0.00 dB,   aux1: 65536 / 100% / 0.00 dB
                balance 0.00
        base volume: 65536 / 100% / 0.00 dB
        volume steps: 65537
        muted: no
        current latency: 0.00 ms
        max request: 0 KiB
        max rewind: 0 KiB
        monitor source: 6
        sample spec: s32le 10ch 96000Hz
        channel map: front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right,aux0,aux1
        used by: 0
        linked by: 0
        fixed latency: 100.00 ms
        card: 3 <alsa_card.usb-Focusrite_Scarlett_18i20_USB_P993THZ9A04D6E-00-USB>
        module: 30
        properties:
                alsa.resolution_bits = "32"
                device.api = "alsa"
                device.class = "sound"
                alsa.class = "generic"
                alsa.subclass = "generic-mix"
                alsa.name = "USB Audio"
                alsa.id = "USB Audio"
                alsa.subdevice = "0"
                alsa.subdevice_name = "subdevice #0"
                alsa.device = "0"
                alsa.card = "4"
                alsa.card_name = "Scarlett 18i20 USB"
                alsa.long_card_name = "Focusrite Scarlett 18i20 USB at usb-0000:00:1d.0-1.6, high speed"
                alsa.driver_name = "snd_usb_audio"
                device.bus_path = "pci-0000:00:1d.0-usb-0:1.6:1.0"
                sysfs.path = "/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0/sound/card4"
                udev.id = "usb-Focusrite_Scarlett_18i20_USB_P993THZ9A04D6E-00-USB"
                device.bus = "usb"
                device.vendor.id = "1235"
                device.vendor.name = "Focusrite-Novation"
                device.product.id = "8215"
                device.product.name = "Scarlett 18i20 USB"
                device.serial = "Focusrite_Scarlett_18i20_USB_P993THZ9A04D6E"
                device.string = "hw:4"
                device.buffering.buffer_size = "384000"
                device.buffering.fragment_size = "96000"
                device.access_mode = "mmap"
                device.profile.name = "multichannel"
                device.profile.description = "Multichannel"
                device.description = "Scarlett 18i20 USB Multichannel"
                alsa.mixer_name = "USB Mixer"
                alsa.components = "USB1235:8215"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card-usb"
pacmd list-sources

Code: Select all

    index: 6
        name: <alsa_output.usb-Focusrite_Scarlett_18i20_USB_P993THZ9A04D6E-00-USB.multichannel.monitor>
        driver: <module-alsa-card.c>
        flags: DECIBEL_VOLUME LATENCY 
        state: SUSPENDED
        suspend cause: IDLE 
        priority: 1040
        volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB,   rear-left: 65536 / 100% / 0.00 dB,   rear-right: 65536 / 100% / 0.00 dB,   front-center: 65536 / 100% / 0.00 dB,   lfe: 65536 / 100% / 0.00 dB,   side-left: 65536 / 100% / 0.00 dB,   side-right: 65536 / 100% / 0.00 dB,   aux0: 65536 / 100% / 0.00 dB,   aux1: 65536 / 100% / 0.00 dB
                balance 0.00
        base volume: 65536 / 100% / 0.00 dB
        volume steps: 65537
        muted: no
        current latency: 0.00 ms
        max rewind: 0 KiB
        sample spec: s32le 10ch 96000Hz
        channel map: front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right,aux0,aux1
        used by: 0
        linked by: 0
        fixed latency: 100.00 ms
        monitor_of: 3
        card: 3 <alsa_card.usb-Focusrite_Scarlett_18i20_USB_P993THZ9A04D6E-00-USB>
        module: 30
        properties:
                device.description = "Monitor of Scarlett 18i20 USB Multichannel"
                device.class = "monitor"
                alsa.card = "4"
                alsa.card_name = "Scarlett 18i20 USB"
                alsa.long_card_name = "Focusrite Scarlett 18i20 USB at usb-0000:00:1d.0-1.6, high speed"
                alsa.driver_name = "snd_usb_audio"
                device.bus_path = "pci-0000:00:1d.0-usb-0:1.6:1.0"
                sysfs.path = "/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0/sound/card4"
                udev.id = "usb-Focusrite_Scarlett_18i20_USB_P993THZ9A04D6E-00-USB"
                device.bus = "usb"
                device.vendor.id = "1235"
                device.vendor.name = "Focusrite-Novation"
                device.product.id = "8215"
                device.product.name = "Scarlett 18i20 USB"
                device.serial = "Focusrite_Scarlett_18i20_USB_P993THZ9A04D6E"
                device.string = "4"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card-usb"
    index: 7
        name: <alsa_input.usb-Focusrite_Scarlett_18i20_USB_P993THZ9A04D6E-00-USB.multichannel>
        driver: <module-alsa-card.c>
        flags: HARDWARE DECIBEL_VOLUME LATENCY 
        state: SUSPENDED
        suspend cause: IDLE 
        priority: 9040
        volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB,   rear-left: 65536 / 100% / 0.00 dB,   rear-right: 65536 / 100% / 0.00 dB,   front-center: 65536 / 100% / 0.00 dB,   lfe: 65536 / 100% / 0.00 dB,   side-left: 65536 / 100% / 0.00 dB,   side-right: 65536 / 100% / 0.00 dB,   aux0: 65536 / 100% / 0.00 dB,   aux1: 65536 / 100% / 0.00 dB
                balance 0.00
        base volume: 65536 / 100% / 0.00 dB
        volume steps: 65537
        muted: no
        current latency: 0.00 ms
        max rewind: 0 KiB
        sample spec: s32le 10ch 96000Hz
        channel map: front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right,aux0,aux1
        used by: 0
        linked by: 0
        fixed latency: 100.00 ms
        card: 3 <alsa_card.usb-Focusrite_Scarlett_18i20_USB_P993THZ9A04D6E-00-USB>
        module: 30
        properties:
                alsa.resolution_bits = "32"
                device.api = "alsa"
                device.class = "sound"
                alsa.class = "generic"
                alsa.subclass = "generic-mix"
                alsa.name = "USB Audio"
                alsa.id = "USB Audio"
                alsa.subdevice = "0"
                alsa.subdevice_name = "subdevice #0"
                alsa.device = "0"
                alsa.card = "4"
                alsa.card_name = "Scarlett 18i20 USB"
                alsa.long_card_name = "Focusrite Scarlett 18i20 USB at usb-0000:00:1d.0-1.6, high speed"
                alsa.driver_name = "snd_usb_audio"
                device.bus_path = "pci-0000:00:1d.0-usb-0:1.6:1.0"
                sysfs.path = "/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0/sound/card4"
                udev.id = "usb-Focusrite_Scarlett_18i20_USB_P993THZ9A04D6E-00-USB"
                device.bus = "usb"
                device.vendor.id = "1235"
                device.vendor.name = "Focusrite-Novation"
                device.product.id = "8215"
                device.product.name = "Scarlett 18i20 USB"
                device.serial = "Focusrite_Scarlett_18i20_USB_P993THZ9A04D6E"
                device.string = "hw:4"
                device.buffering.buffer_size = "384000"
                device.buffering.fragment_size = "96000"
                device.access_mode = "mmap"
                device.profile.name = "multichannel"
                device.profile.description = "Multichannel"
                device.description = "Scarlett 18i20 USB Multichannel"
                alsa.mixer_name = "USB Mixer"
                alsa.components = "USB1235:8215"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card-usb"
and finally lsusb -v -d

Code: Select all

Bus 002 Device 006: ID 1235:8215 Novation EMS 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 ?
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  idVendor           0x1235 Novation EMS
  idProduct          0x8215 
  bcdDevice            6.1b
  iManufacturer           1 
  iProduct                3 
  iSerial                 2 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          643
    bNumInterfaces          6
    bConfigurationValue     1
    iConfiguration          9 
    bmAttributes         0xc0
      Self Powered
    MaxPower                0mA
    Interface Association:
      bLength                 8
      bDescriptorType        11
      bFirstInterface         0
      bInterfaceCount         3
      bFunctionClass          1 Audio
      bFunctionSubClass       0 
      bFunctionProtocol      32 
      iFunction               0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      1 Control Device
      bInterfaceProtocol     32 
      iInterface              3 
      AudioControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               2.00
        bCategory               8
        wTotalLength          191
        bmControl            0x00
      AudioControl Interface Descriptor:
        bLength                 8
        bDescriptorType        36
        bDescriptorSubtype     10 (CLOCK_SOURCE)
        bClockID               41
        bmAttributes         0x03 Internal programmable Clock 
        bmControls           0x07
          Clock Frequency Control (read/write)
          Clock Validity Control (read-only)
        bAssocTerminal          0
        iClockSource            9 
      AudioControl Interface Descriptor:
        bLength                 8
        bDescriptorType        36
        bDescriptorSubtype     10 (CLOCK_SOURCE)
        bClockID               42
        bmAttributes         0x00 External Clock 
        bmControls           0x07
          Clock Frequency Control (read/write)
          Clock Validity Control (read-only)
        bAssocTerminal          0
        iClockSource           11 
      AudioControl Interface Descriptor:
        bLength                 8
        bDescriptorType        36
        bDescriptorSubtype     10 (CLOCK_SOURCE)
        bClockID               43
        bmAttributes         0x00 External Clock 
        bmControls           0x07
          Clock Frequency Control (read/write)
          Clock Validity Control (read-only)
        bAssocTerminal          0
        iClockSource           12 
      AudioControl Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype     11 (CLOCK_SELECTOR)
        bUnitID                40
        bNrInPins               3
        baCSourceID( 0)        41
        baCSourceID( 1)        42
        baCSourceID( 2)        43
        bmControls           0x03
          Clock Selector Control (read/write)
        iClockSelector          8 
      AudioControl Interface Descriptor:
        bLength                17
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             2
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bCSourceID             40
        bNrChannels            20
        bmChannelConfig   0x00000000
        bmControls    0x0000
        iChannelNames          19 
        iTerminal               6 
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID            20
        wTerminalType      0x0301 Speaker
        bAssocTerminal          0
        bSourceID               2
        bCSourceID             40
        bmControls         0x0000
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                17
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             1
        wTerminalType      0x0201 Microphone
        bAssocTerminal          0
        bCSourceID             40
        bNrChannels            20
        bmChannelConfig   0x00000000
        bmControls    0x0000
        iChannelNames          39 
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                90
        bDescriptorType        36
        bDescriptorSubtype      6 (FEATURE_UNIT)
        bUnitID                11
        bSourceID               1
        bmaControls( 0)      0x00000000
        bmaControls( 1)      0x00000000
        bmaControls( 2)      0x00000000
        bmaControls( 3)      0x00000000
        bmaControls( 4)      0x00000000
        bmaControls( 5)      0x00000000
        bmaControls( 6)      0x00000000
        bmaControls( 7)      0x00000000
        bmaControls( 8)      0x00000000
        bmaControls( 9)      0x00000000
        bmaControls(10)      0x00000000
        bmaControls(11)      0x00000000
        bmaControls(12)      0x00000000
        bmaControls(13)      0x00000000
        bmaControls(14)      0x00000000
        bmaControls(15)      0x00000000
        bmaControls(16)      0x00000000
        bmaControls(17)      0x00000000
        bmaControls(18)      0x00000000
        bmaControls(19)      0x00000000
        bmaControls(20)      0x00000000
        iFeature                0 
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID            22
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bSourceID              11
        bCSourceID             40
        bmControls         0x0000
        iTerminal               7 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              4 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              4 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           2
        bmControls           0x04
          Valid Alternate Setting Control (read-only)
        bFormatType             1
        bmFormats         0x00000001
          PCM
        bNrChannels            20
        bmChannelConfig   0x00000000
        iChannelNames          19 
      AudioStreaming Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            4
        bBitResolution         24
        junk at descriptor end: 80 bb 00 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x0230  1x 560 bytes
        bInterval               1
        AudioControl Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         1 Milliseconds
          wLockDelay            512
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       2
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              4 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           2
        bmControls           0x04
          Valid Alternate Setting Control (read-only)
        bFormatType             1
        bmFormats         0x00000001
          PCM
        bNrChannels            18
        bmChannelConfig   0x00000000
        iChannelNames          19 
      AudioStreaming Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            4
        bBitResolution         24
        junk at descriptor end: 00 77 01 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x03a8  1x 936 bytes
        bInterval               1
        AudioControl Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         1 Milliseconds
          wLockDelay            512
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       3
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              4 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           2
        bmControls           0x04
          Valid Alternate Setting Control (read-only)
        bFormatType             1
        bmFormats         0x00000001
          PCM
        bNrChannels            10
        bmChannelConfig   0x00000000
        iChannelNames          19 
      AudioStreaming Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            4
        bBitResolution         24
        junk at descriptor end: 00 ee 02 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x03e8  1x 1000 bytes
        bInterval               1
        AudioControl Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         1 Milliseconds
          wLockDelay            512
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              5 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              5 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink          22
        bmControls           0x04
          Valid Alternate Setting Control (read-only)
        bFormatType             1
        bmFormats         0x00000001
          PCM
        bNrChannels            20
        bmChannelConfig   0x00000000
        iChannelNames          39 
      AudioStreaming Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            4
        bBitResolution         24
        junk at descriptor end: 80 bb 00 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes           37
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Implicit feedback Data
        wMaxPacketSize     0x0230  1x 560 bytes
        bInterval               1
        AudioControl Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         1 Milliseconds
          wLockDelay            512
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       2
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              5 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink          22
        bmControls           0x04
          Valid Alternate Setting Control (read-only)
        bFormatType             1
        bmFormats         0x00000001
          PCM
        bNrChannels            18
        bmChannelConfig   0x00000000
        iChannelNames          39 
      AudioStreaming Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            4
        bBitResolution         24
        junk at descriptor end: 00 77 01 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes           37
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Implicit feedback Data
        wMaxPacketSize     0x03a8  1x 936 bytes
        bInterval               1
        AudioControl Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         1 Milliseconds
          wLockDelay            512
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       3
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              5 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink          22
        bmControls           0x04
          Valid Alternate Setting Control (read-only)
        bFormatType             1
        bmFormats         0x00000001
          PCM
        bNrChannels            10
        bmChannelConfig   0x00000000
        iChannelNames          39 
      AudioStreaming Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            4
        bBitResolution         24
        junk at descriptor end: 00 ee 02 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes           37
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Implicit feedback Data
        wMaxPacketSize     0x03e8  1x 1000 bytes
        bInterval               1
        AudioControl Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         1 Milliseconds
          wLockDelay            512
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      1 
      bInterfaceProtocol     32 
      iInterface             15 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        4
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      1 Control Device
      bInterfaceProtocol      0 
      iInterface              0 
      AudioControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               1.00
        wTotalLength            9
        bInCollection           1
        baInterfaceNr( 0)       1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        5
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         1 Audio
      bInterfaceSubClass      3 MIDI Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      MIDIStreaming Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               1.00
        wTotalLength           65
      MIDIStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (MIDI_IN_JACK)
        bJackType               1 Embedded
        bJackID                 1
        iJack                   0 
      MIDIStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (MIDI_IN_JACK)
        bJackType               2 External
        bJackID                 2
        iJack                  14 
      MIDIStreaming Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (MIDI_OUT_JACK)
        bJackType               1 Embedded
        bJackID                 3
        bNrInputPins            1
        baSourceID( 0)          2
        BaSourcePin( 0)         1
        iJack                   0 
      MIDIStreaming Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (MIDI_OUT_JACK)
        bJackType               2 External
        bJackID                 4
        bNrInputPins            1
        baSourceID( 0)          1
        BaSourcePin( 0)         1
        iJack                  13 
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
        bRefresh                0
        bSynchAddress           0
        MIDIStreaming Endpoint Descriptor:
          bLength                 5
          bDescriptorType        37
          bDescriptorSubtype      1 (GENERAL)
          bNumEmbMIDIJack         1
          baAssocJackID( 0)       1
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
        bRefresh                0
        bSynchAddress           0
        MIDIStreaming Endpoint Descriptor:
          bLength                 5
          bDescriptorType        37
          bDescriptorSubtype      1 (GENERAL)
          bNumEmbMIDIJack         1
          baAssocJackID( 0)       3

puleglot
Established Member
Posts: 113
Joined: Thu Jan 23, 2020 3:14 pm

Re: Scarlett 18i20 gen 3 Linux - Crackling Audio

Post by puleglot »

Yeah, I was right. This device has implicit feedback endpoint. The following patch should fix the crackling sound:

Code: Select all

SUPERSEDED BY A NEWER PATCH
Note that due to some limitations in snd-usb-audio driver, simultaneous playback and capture for devices with implicit feedback only works with jack.
Last edited by puleglot on Thu Apr 16, 2020 12:22 pm, edited 2 times in total.

puleglot
Established Member
Posts: 113
Joined: Thu Jan 23, 2020 3:14 pm

Re: Scarlett 18i20 gen 3 Linux - Crackling Audio

Post by puleglot »

I can submit this patch to ALSA if somebody confirm that is works and provide Tested-by: tag.

lapsio
Established Member
Posts: 39
Joined: Thu Sep 01, 2016 7:34 am

Re: Scarlett 18i20 gen 3 Linux - Crackling Audio

Post by lapsio »

Any assistance / tutorial on how can I apply this patch? It's not like I'm patching my kernel twice a day xD
It's quite old kernel but I have kernel sources installed since they were needed for VMWare and VBox DKMS modules.

But if it's not really possible to do on old kernel I can spin up quickly some Arch Linux just to confirm whether this patch works and then I'll be screwing around with my old junk.

EDIT:
`/usr/src/linux-x.x.x/sound/usb/pcm.c` file on my desktop from kernel 4.6 looks significantly different and path is not applicable directly. However I found pcm.c file on my laptop (kernel 5.3.7) to be similar so I applied source patch here. Can I compile this module now in some relatively automated way? I mean I'd like to preserve as many settings as possible in order to not break something else in system.

puleglot
Established Member
Posts: 113
Joined: Thu Jan 23, 2020 3:14 pm

Re: Scarlett 18i20 gen 3 Linux - Crackling Audio

Post by puleglot »

lapsio wrote:
Sun Mar 15, 2020 6:36 pm
EDIT:
`/usr/src/linux-x.x.x/sound/usb/pcm.c` file on my desktop from kernel 4.6 looks significantly different and path is not applicable directly. However I found pcm.c file on my laptop (kernel 5.3.7) to be similar so I applied source patch here.
The 4.6 kernel is pretty old and the code in set_sync_ep_implicit_fb_quirk() was reorganized since then. So it is better to try 5.4 or newer, but 5.3 should be also fine I guess.
lapsio wrote:
Sun Mar 15, 2020 6:36 pm
Can I compile this module now in some relatively automated way? I mean I'd like to preserve as many settings as possible in order to not break something else in system.
To preserve configuration of the running kernel:
# cd /usr/src/linux-x.x.x/
# zcat /proc/config.gz > .config
# make oldconfig

lapsio
Established Member
Posts: 39
Joined: Thu Sep 01, 2016 7:34 am

Re: Scarlett 18i20 gen 3 Linux - Crackling Audio

Post by lapsio »

My first impression is that yes this patch fixed crackling, thank you very much for help, I'll need to test it for few day though since I'm not sure if it didn't change something in sound like pitch or something... But maybe it's placebo effect, I'll have to compare with/without patch.

When I'll confirm that it definitely solved issue without side effects I'll post update and we could proceed with ALSA pull request.

lapsio
Established Member
Posts: 39
Joined: Thu Sep 01, 2016 7:34 am

Re: Scarlett 18i20 gen 3 Linux - Crackling Audio

Post by lapsio »

Okay I found first issue - now interface doesn't really want to run in 96kHz mode other than capture-only mode. JACK hangs after any attempt to run in 96kHz or 192kHz in duplex or playback-only mode.

It's not really THAT terrible since 96kHz and 192kHz were always kinda broken on this device (I never managed to run interface in 96 kHz in duplex mode, only in playback-only or capture-only modes) but now it works only for capture-only mode. That said at least it works in 48kHz mode without annoying crackling so at least it's usable in SOME mode.

Also playback only mode now hangs when I'm trying so manually specify number of channels (lower than default 20, in practice 10 is the only number acceptable by interface, the same for playback) regardless of sample rate.

lapsio
Established Member
Posts: 39
Joined: Thu Sep 01, 2016 7:34 am

Re: Scarlett 18i20 gen 3 Linux - Crackling Audio

Post by lapsio »

Sorry, now I see that maybe it wasn't clear - I'm unable to start it in 96kHz mode BECAUSE I'm unable to specify output channels count. This device doesn't work with all 20 channels in 96kHz even on windows. 96kHz mode works onky with 18 output channels (S/PDIF gets disabled) and 192kHz only with 10 channels since ADAT can't run in 192 kHz mode. All 20 outputs are only available in 48kHz. Similar limitations apply to input but here I'm still able to select number of inputs statically and successfully launch 10 channels @ 192kHz and 18 @ 96kHz or 48 kHz

Before patching starting interface with all 18+20 channels in 96kHz mode resulted in instant flood of XRUNs but now it just hangs and times out. The same happens if I try to run it with 10 or 18 output channels (regardless of sample rate)

puleglot
Established Member
Posts: 113
Joined: Thu Jan 23, 2020 3:14 pm

Re: Scarlett 18i20 gen 3 Linux - Crackling Audio

Post by puleglot »

lapsio wrote:
Sat Mar 21, 2020 12:24 am
It's not really THAT terrible since 96kHz and 192kHz were always kinda broken on this device (I never managed to run interface in 96 kHz in duplex mode, only in playback-only or capture-only modes) but now it works only for capture-only mode.
The driver now opens both input and output streams during playback because input stream is used for feedback.
Last edited by puleglot on Sat Mar 21, 2020 8:01 pm, edited 1 time in total.

puleglot
Established Member
Posts: 113
Joined: Thu Jan 23, 2020 3:14 pm

Re: Scarlett 18i20 gen 3 Linux - Crackling Audio

Post by puleglot »

Please show the contents of /proc/asound/USB/stream0 (and I guess there are no stream1 and stream2 here).

puleglot
Established Member
Posts: 113
Joined: Thu Jan 23, 2020 3:14 pm

Re: Scarlett 18i20 gen 3 Linux - Crackling Audio

Post by puleglot »

And it turned out that max sample rate is stored in a non-compliant audio format descriptor:

Code: Select all

      AudioStreaming Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            4
        bBitResolution         24
        junk at descriptor end: 80 bb 00 00

Code: Select all

$ printf "%d\n" $((16#bb80))
48000
$

Code: Select all

      AudioStreaming Interface Descriptor:
        ...
        junk at descriptor end: 00 ee 02 00

Code: Select all

$ printf "%d\n" $((16#0002ee00))
192000
$

lapsio
Established Member
Posts: 39
Joined: Thu Sep 01, 2016 7:34 am

Re: Scarlett 18i20 gen 3 Linux - Crackling Audio

Post by lapsio »

Content of all files in /proc/asound/USB

Code: Select all


lapsio@linux-a7l6 ~> for i in (ls /proc/asound/USB/*) ; echo "#### $i ####" ; cat $i ; end
#### /proc/asound/USB/id ####
USB
#### /proc/asound/USB/midi0 ####
Scarlett 18i20 USB

Output 0
  Tx bytes     : 0
Input 0
  Rx bytes     : 0
#### /proc/asound/USB/stream0 ####
Focusrite Scarlett 18i20 USB at usb-0000:00:14.0-1, high speed : USB Audio

Playback:
  Status: Stop
  Interface 1
    Altset 1
    Format: S32_LE
    Channels: 20
    Endpoint: 1 OUT (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000
    Data packet interval: 125 us
    Bits: 24
  Interface 1
    Altset 2
    Format: S32_LE
    Channels: 18
    Endpoint: 1 OUT (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000
    Data packet interval: 125 us
    Bits: 24
  Interface 1
    Altset 3
    Format: S32_LE
    Channels: 10
    Endpoint: 1 OUT (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000
    Data packet interval: 125 us
    Bits: 24

Capture:
  Status: Stop
  Interface 2
    Altset 1
    Format: S32_LE
    Channels: 20
    Endpoint: 1 IN (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000
    Data packet interval: 125 us
    Bits: 24
  Interface 2
    Altset 2
    Format: S32_LE
    Channels: 18
    Endpoint: 1 IN (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000
    Data packet interval: 125 us
    Bits: 24
  Interface 2
    Altset 3
    Format: S32_LE
    Channels: 10
    Endpoint: 1 IN (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000
    Data packet interval: 125 us
    Bits: 24
#### /proc/asound/USB/usbbus ####
001/005
#### /proc/asound/USB/usbid ####
1235:8215
#### /proc/asound/USB/usbmixer ####
USB Mixer: usb_id=0x12358215, ctrlif=0, ctlerr=0
Card: Focusrite Scarlett 18i20 USB at usb-0000:00:14.0-1, high speed
USB Mixer: usb_id=0x12358215, ctrlif=0, ctlerr=0
Card: Focusrite Scarlett 18i20 USB at usb-0000:00:14.0-1, high speed
  Unit: 40
    Control: name="Clock Source Clock Source", index=0
    Info: id=40, control=1, cmask=0x0, channels=1, type="U8"
    Volume: min=1, max=3, dBmin=0, dBmax=0
  Unit: 41
    Control: name="Internal Validity", index=0
    Info: id=41, control=2, cmask=0x0, channels=1, type="BOOLEAN"
    Volume: min=0, max=1, dBmin=0, dBmax=0
  Unit: 42
    Control: name="S/PDIF Validity", index=0
    Info: id=42, control=2, cmask=0x0, channels=1, type="BOOLEAN"
    Volume: min=0, max=1, dBmin=0, dBmax=0
  Unit: 43
    Control: name="ADAT Validity", index=0
    Info: id=43, control=2, cmask=0x0, channels=1, type="BOOLEAN"
    Volume: min=0, max=1, dBmin=0, dBmax=0
####  ####
cat: '': No such file or directory
#### /proc/asound/USB/pcm0c: ####
cat: '/proc/asound/USB/pcm0c:': No such file or directory
#### info ####
cat: info: No such file or directory
#### sub0 ####
cat: sub0: No such file or directory
#### xrun_debug ####
cat: xrun_debug: No such file or directory
####  ####
cat: '': No such file or directory
#### /proc/asound/USB/pcm0p: ####
cat: '/proc/asound/USB/pcm0p:': No such file or directory
#### info ####
cat: info: No such file or directory
#### sub0 ####
cat: sub0: No such file or directory
#### xrun_debug ####
cat: xrun_debug: No such file or directory

Content of lsusb -vd from patched kernel 5.3.7 (previously posted one was from kernel 4.6)

Code: Select all


lapsio@linux-a7l6 ~> lsusb -vd 1235:8215

Bus 001 Device 005: ID 1235:8215 Focusrite-Novation 
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  idVendor           0x1235 Focusrite-Novation
  idProduct          0x8215 
  bcdDevice            6.1b
  iManufacturer           1 
  iProduct                3 
  iSerial                 2 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          643
    bNumInterfaces          6
    bConfigurationValue     1
    iConfiguration          9 
    bmAttributes         0xc0
      Self Powered
    MaxPower                0mA
    Interface Association:
      bLength                 8
      bDescriptorType        11
      bFirstInterface         0
      bInterfaceCount         3
      bFunctionClass          1 Audio
      bFunctionSubClass       0 
      bFunctionProtocol      32 
      iFunction               0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      1 Control Device
      bInterfaceProtocol     32 
      iInterface              3 
      AudioControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               2.00
        bCategory               8
        wTotalLength          191
        bmControl            0x00
      AudioControl Interface Descriptor:
        bLength                 8
        bDescriptorType        36
        bDescriptorSubtype     10 (CLOCK_SOURCE)
        bClockID               41
        bmAttributes         0x03 Internal programmable Clock 
        bmControls           0x07
          Clock Frequency Control (read/write)
          Clock Validity Control (read-only)
        bAssocTerminal          0
        iClockSource            9 
      AudioControl Interface Descriptor:
        bLength                 8
        bDescriptorType        36
        bDescriptorSubtype     10 (CLOCK_SOURCE)
        bClockID               42
        bmAttributes         0x00 External Clock 
        bmControls           0x07
          Clock Frequency Control (read/write)
          Clock Validity Control (read-only)
        bAssocTerminal          0
        iClockSource           11 
      AudioControl Interface Descriptor:
        bLength                 8
        bDescriptorType        36
        bDescriptorSubtype     10 (CLOCK_SOURCE)
        bClockID               43
        bmAttributes         0x00 External Clock 
        bmControls           0x07
          Clock Frequency Control (read/write)
          Clock Validity Control (read-only)
        bAssocTerminal          0
        iClockSource           12 
      AudioControl Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype     11 (CLOCK_SELECTOR)
        bUnitID                40
        bNrInPins               3
        baCSourceID( 0)        41
        baCSourceID( 1)        42
        baCSourceID( 2)        43
        bmControls           0x03
          Clock Selector Control (read/write)
        iClockSelector          8 
      AudioControl Interface Descriptor:
        bLength                17
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             2
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bCSourceID             40
        bNrChannels            20
        bmChannelConfig   0x00000000
        bmControls    0x0000
        iChannelNames          19 
        iTerminal               6 
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID            20
        wTerminalType      0x0301 Speaker
        bAssocTerminal          0
        bSourceID               2
        bCSourceID             40
        bmControls         0x0000
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                17
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             1
        wTerminalType      0x0201 Microphone
        bAssocTerminal          0
        bCSourceID             40
        bNrChannels            20
        bmChannelConfig   0x00000000
        bmControls    0x0000
        iChannelNames          39 
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                90
        bDescriptorType        36
        bDescriptorSubtype      6 (FEATURE_UNIT)
        bUnitID                11
        bSourceID               1
        bmaControls( 0)      0x00000000
        bmaControls( 1)      0x00000000
        bmaControls( 2)      0x00000000
        bmaControls( 3)      0x00000000
        bmaControls( 4)      0x00000000
        bmaControls( 5)      0x00000000
        bmaControls( 6)      0x00000000
        bmaControls( 7)      0x00000000
        bmaControls( 8)      0x00000000
        bmaControls( 9)      0x00000000
        bmaControls(10)      0x00000000
        bmaControls(11)      0x00000000
        bmaControls(12)      0x00000000
        bmaControls(13)      0x00000000
        bmaControls(14)      0x00000000
        bmaControls(15)      0x00000000
        bmaControls(16)      0x00000000
        bmaControls(17)      0x00000000
        bmaControls(18)      0x00000000
        bmaControls(19)      0x00000000
        bmaControls(20)      0x00000000
        iFeature                0 
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID            22
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bSourceID              11
        bCSourceID             40
        bmControls         0x0000
        iTerminal               7 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              4 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              4 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           2
        bmControls           0x04
          Valid Alternate Setting Control (read-only)
        bFormatType             1
        bmFormats         0x00000001
          PCM
        bNrChannels            20
        bmChannelConfig   0x00000000
        iChannelNames          19 
      AudioStreaming Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            4
        bBitResolution         24
        junk at descriptor end: 80 bb 00 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x0230  1x 560 bytes
        bInterval               1
        AudioControl Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         1 Milliseconds
          wLockDelay            512
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       2
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              4 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           2
        bmControls           0x04
          Valid Alternate Setting Control (read-only)
        bFormatType             1
        bmFormats         0x00000001
          PCM
        bNrChannels            18
        bmChannelConfig   0x00000000
        iChannelNames          19 
      AudioStreaming Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            4
        bBitResolution         24
        junk at descriptor end: 00 77 01 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x03a8  1x 936 bytes
        bInterval               1
        AudioControl Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         1 Milliseconds
          wLockDelay            512
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       3
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              4 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           2
        bmControls           0x04
          Valid Alternate Setting Control (read-only)
        bFormatType             1
        bmFormats         0x00000001
          PCM
        bNrChannels            10
        bmChannelConfig   0x00000000
        iChannelNames          19 
      AudioStreaming Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            4
        bBitResolution         24
        junk at descriptor end: 00 ee 02 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x03e8  1x 1000 bytes
        bInterval               1
        AudioControl Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         1 Milliseconds
          wLockDelay            512
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              5 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              5 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink          22
        bmControls           0x04
          Valid Alternate Setting Control (read-only)
        bFormatType             1
        bmFormats         0x00000001
          PCM
        bNrChannels            20
        bmChannelConfig   0x00000000
        iChannelNames          39 
      AudioStreaming Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            4
        bBitResolution         24
        junk at descriptor end: 80 bb 00 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes           37
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Implicit feedback Data
        wMaxPacketSize     0x0230  1x 560 bytes
        bInterval               1
        AudioControl Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         1 Milliseconds
          wLockDelay            512
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       2
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              5 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink          22
        bmControls           0x04
          Valid Alternate Setting Control (read-only)
        bFormatType             1
        bmFormats         0x00000001
          PCM
        bNrChannels            18
        bmChannelConfig   0x00000000
        iChannelNames          39 
      AudioStreaming Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            4
        bBitResolution         24
        junk at descriptor end: 00 77 01 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes           37
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Implicit feedback Data
        wMaxPacketSize     0x03a8  1x 936 bytes
        bInterval               1
        AudioControl Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         1 Milliseconds
          wLockDelay            512
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       3
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              5 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink          22
        bmControls           0x04
          Valid Alternate Setting Control (read-only)
        bFormatType             1
        bmFormats         0x00000001
          PCM
        bNrChannels            10
        bmChannelConfig   0x00000000
        iChannelNames          39 
      AudioStreaming Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            4
        bBitResolution         24
        junk at descriptor end: 00 ee 02 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes           37
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Implicit feedback Data
        wMaxPacketSize     0x03e8  1x 1000 bytes
        bInterval               1
        AudioControl Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         1 Milliseconds
          wLockDelay            512
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      1 
      bInterfaceProtocol     32 
      iInterface             15 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        4
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      1 Control Device
      bInterfaceProtocol      0 
      iInterface              0 
      AudioControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               1.00
        wTotalLength            9
        bInCollection           1
        baInterfaceNr( 0)       1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        5
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         1 Audio
      bInterfaceSubClass      3 MIDI Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      MIDIStreaming Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               1.00
        wTotalLength           65
      MIDIStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (MIDI_IN_JACK)
        bJackType               1 Embedded
        bJackID                 1
        iJack                   0 
      MIDIStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (MIDI_IN_JACK)
        bJackType               2 External
        bJackID                 2
        iJack                  14 
      MIDIStreaming Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (MIDI_OUT_JACK)
        bJackType               1 Embedded
        bJackID                 3
        bNrInputPins            1
        baSourceID( 0)          2
        BaSourcePin( 0)         1
        iJack                   0 
      MIDIStreaming Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (MIDI_OUT_JACK)
        bJackType               2 External
        bJackID                 4
        bNrInputPins            1
        baSourceID( 0)          1
        BaSourcePin( 0)         1
        iJack                  13 
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
        bRefresh                0
        bSynchAddress           0
        MIDIStreaming Endpoint Descriptor:
          bLength                 5
          bDescriptorType        37
          bDescriptorSubtype      1 (GENERAL)
          bNumEmbMIDIJack         1
          baAssocJackID( 0)       1
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
        bRefresh                0
        bSynchAddress           0
        MIDIStreaming Endpoint Descriptor:
          bLength                 5
          bDescriptorType        37
          bDescriptorSubtype      1 (GENERAL)
          bNumEmbMIDIJack         1
          baAssocJackID( 0)       3


Yeah channel counts mentioned in stream0 file are valid (20, 18 or 10). I was able to specify those in JACK before. However I was never able to specify them in duplex mode, JACK was just crashing (which considering what you say about capture being always enabled now implies why I'm unable to set playback channels count). I have no idea tho what's up with input channels 20 since this device doesn't even have 20 input channels lol... Unless it counts internal loopback interface which is visible in Focusrite Control software on Windows.

Post Reply