Scarlett 18i20 gen 3 Linux - Crackling Audio

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

Moderators: MattKingUSA, khz

triiif
Established Member
Posts: 4
Joined: Sun Mar 22, 2020 11:58 am

Re: Scarlett 18i20 gen 3 Linux - Crackling Audio

Post by triiif »

Be assured, I can go down on light CPU track. I was testing with a heavy VST track.
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 I know it's probably a lot to ask for, but would it be maybe possible to port this patch (in current version) back to my before mentioned kernel 4.6? I tried to pull off probably the most ridiculously overcomplicated workaround one could come up with to get this running on 4.6 - means I created headless Arch Linux VirtualBox VM with Scarlett 18i20 USB passthrough and patched kernel 5.4 to launch NetJACK1 here and pass audio using NetJACK from host with kernel 4.6 to VM with patched kernel 5.4 controlling soundcard.

Unfortunately my devious plan failed miserably since:
1) for some apparent reason device doesn't want to run at 96kHz in VM at all and frankly it looks like emulated USB driver bandwidth issue because it doesn't work even without patch (something that worked on every bare metal I tested) and when using EHCI VM controller it doesn't work even at 48 kHz.
2) NetJACK1 is apparently also flawed and seems to struggle with transporting anything above 6/6 channel in normal network and 8/8 when using 9k jumbo frames. I could reach 10/10 only because it's virtual loopback network so I could set insane MTU like 32k which are not supported by any real hardware. :(
3) since it's VM I'm getting a lot of netruns which are NetJACK equivalents of XRUNs since virtualized networking is quite unpredictable and unstable latency-wise. And I can't set JACK here to RT-PRIO since setting VirtualBox to RT FIFO is absolutely utterly terrible idea which in 9 out of 10 cases ends up with CPU hard lockup or kernel panic after few hours of use on average.

So I guess I'll rather do everything to get this running on 4.6. :lol:

this is my pcm.c file:
https://pastebin.com/9PGC6AxH
quirks-table.h:
https://pastebin.com/kzz2whBs

It doesn't even need to be full fix, I'll be fine even with interface working only in 48 kHz as long as it doesn't crackle at least (so just that first part of patch).
puleglot
Established Member
Posts: 135
Joined: Thu Jan 23, 2020 3:14 pm
Has thanked: 3 times
Been thanked: 13 times

Re: Scarlett 18i20 gen 3 Linux - Crackling Audio

Post by puleglot »

lapsio wrote: Mon Mar 30, 2020 11:49 pm @puleglot I know it's probably a lot to ask for, but would it be maybe possible to port this patch (in current version) back to my before mentioned kernel 4.6?
Completely untested:

Code: Select all

diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c
index 44d178ee9177..32c70e136cfb 100644
--- a/sound/usb/pcm.c
+++ b/sound/usb/pcm.c
@@ -314,6 +314,7 @@ static int search_roland_implicit_fb(struct usb_device *dev, int ifnum,
 }
 
 static int set_sync_ep_implicit_fb_quirk(struct snd_usb_substream *subs,
+					 struct audioformat *fmt,
 					 struct usb_device *dev,
 					 struct usb_interface_descriptor *altsd,
 					 unsigned int attr)
@@ -348,6 +349,15 @@ static int set_sync_ep_implicit_fb_quirk(struct snd_usb_substream *subs,
 
 		alts = &iface->altsetting[1];
 		goto add_sync_ep;
+	case USB_ID(0x1235, 0x8215): /* Focusrite Scarlett 18i20 3rd Gen */
+		ep = 0x81;
+		iface = usb_ifnum_to_if(dev, 2);
+		if (!iface || fmt->altset_idx == 0 ||
+		    fmt->altset_idx >= iface->num_altsetting)
+			return -EINVAL;
+
+		alts = &iface->altsetting[fmt->altset_idx];
+		goto add_sync_ep;
 	}
 	if (attr == USB_ENDPOINT_SYNC_ASYNC &&
 	    altsd->bInterfaceClass == USB_CLASS_VENDOR_SPEC &&
@@ -407,7 +417,7 @@ static int set_sync_endpoint(struct snd_usb_substream *subs,
 		subs->data_endpoint->sync_master = NULL;
 	}
 
-	err = set_sync_ep_implicit_fb_quirk(subs, dev, altsd, attr);
+	err = set_sync_ep_implicit_fb_quirk(subs, fmt, dev, altsd, attr);
 	if (err < 0)
 		return err;
 
User avatar
skobkin
Established Member
Posts: 12
Joined: Mon Apr 13, 2020 6:58 pm
Location: Arkhangelsk, Russia
Been thanked: 1 time
Contact:

Re: Scarlett 18i20 gen 3 Linux - Crackling Audio

Post by skobkin »

triiif wrote: Wed Mar 25, 2020 10:41 pm if i lower the frames number, i can get cracks on complex songs.
How complex?
I'm asking because you will get crackling even on Windows where it works like intended if you use small buffer size with many VST plugins. That's why it's a common practice to record on small buffer size to avoid latency problems and then edit using bigger value.
Maybe you also use too many plugins and your FX chain could be optimized?
puleglot wrote: Thu Mar 26, 2020 1:34 pm This is only needed for cards that support different set of sample rates in different modes, like 18i20 and probably 18i8. These sample rate constraints cannon be exposed in a standard UAC2 way, so Focusrite exposes them via non class compliant audio format descriptors that is currently not understood by the driver.
I want to test your patches on my 18i20 gen3. As far as I understand I need to take second part of the old patch (quirks) and the latest patch which "must not crash the kernel". Am I correct?
puleglot
Established Member
Posts: 135
Joined: Thu Jan 23, 2020 3:14 pm
Has thanked: 3 times
Been thanked: 13 times

Re: Scarlett 18i20 gen 3 Linux - Crackling Audio

Post by puleglot »

skobkin wrote: Wed Apr 15, 2020 1:44 pm I want to test your patches on my 18i20 gen3. As far as I understand I need to take second part of the old patch (quirks) and the latest patch which "must not crash the kernel". Am I correct?
Correct. But instead of an old patch against quirks-table.h please try the attached patch.

Update: attached patches were broken. Removed them.
Last edited by puleglot on Sat Apr 18, 2020 12:00 am, edited 2 times in total.
User avatar
skobkin
Established Member
Posts: 12
Joined: Mon Apr 13, 2020 6:58 pm
Location: Arkhangelsk, Russia
Been thanked: 1 time
Contact:

Re: Scarlett 18i20 gen 3 Linux - Crackling Audio

Post by skobkin »

puleglot wrote: Wed Apr 15, 2020 10:19 pm Correct. But instead of an old patch against quirks-table.h please try the attached patch. It should apply cleanly at least to 5.4-5.6 kernels.
Ok. What about this part from the first two pages?

Code: Select all

--- a/sound/usb/pcm.c
+++ b/sound/usb/pcm.c
@@ -365,6 +365,10 @@ static int set_sync_ep_implicit_fb_quirk(struct snd_usb_substream *subs,
 		ep = 0x81;
 		ifnum = 2;
 		goto add_sync_ep_from_ifnum;
+	case USB_ID(0x1235, 0x8215): /* Focusrite Scarlett 18i20 3rd Gen */
+		ep = 0x81;
+		ifnum = 2;
+		goto add_sync_ep_from_ifnum;
Also please tell me what to test. Because I didn't test anything of this thread before.
As far as I understand this patch(es) must remove sound crackling. But I see that you're doing something with sample rate detection in the last patch, so I'm not sure what to test because I hadn't any problems with it.

// Also your last patch is not in -p1 format so it was needed to manually fix the paths to automatically apply it using package manager.
puleglot
Established Member
Posts: 135
Joined: Thu Jan 23, 2020 3:14 pm
Has thanked: 3 times
Been thanked: 13 times

Re: Scarlett 18i20 gen 3 Linux - Crackling Audio

Post by puleglot »

skobkin wrote: Thu Apr 16, 2020 11:59 am Also please tell me what to test. Because I didn't test anything of this thread before.
As far as I understand this patch(es) must remove sound crackling. But I see that you're doing something with sample rate detection in the last patch, so I'm not sure what to test because I hadn't any problems with it.
Attached patch should fix crackling sound. Note that full duplex mode will work only with jack due to some limitations in the driver.

Rate detection fix is needed just to prevent user from selecting unsupported sample rate.
skobkin wrote: Thu Apr 16, 2020 11:59 am // Also your last patch is not in -p1 format so it was needed to manually fix the paths to automatically apply it using package manager.
Ooops, fixed. Thanks.
Attachments
18i20gen3_implicit_fb.txt
Implicit feedback quirk for 18i3 3rd gen
(1003 Bytes) Downloaded 97 times
User avatar
skobkin
Established Member
Posts: 12
Joined: Mon Apr 13, 2020 6:58 pm
Location: Arkhangelsk, Russia
Been thanked: 1 time
Contact:

Re: Scarlett 18i20 gen 3 Linux - Crackling Audio

Post by skobkin »

puleglot wrote: Thu Apr 16, 2020 12:18 pm Note that full duplex mode will work only with jack due to some limitations in the driver.
So if I'm using PulseAudio right now there is nothing for me to improve in the current situation by these patches?

I was planning to check if wiring PulseAudio through Jack would work but hadn't much time to properly research it.

P.S. I can still check if these patches solve crackling for me.
But unfortunately I couldn't use them on a daily basis at least until I move to Jack+PulseAudio or until USB Audio driver is fixed in the kernel (which is not going to be soon as far as I understand).

Thanks for the info anyway!
puleglot
Established Member
Posts: 135
Joined: Thu Jan 23, 2020 3:14 pm
Has thanked: 3 times
Been thanked: 13 times

Re: Scarlett 18i20 gen 3 Linux - Crackling Audio

Post by puleglot »

skobkin wrote: Thu Apr 16, 2020 12:26 pm So if I'm using PulseAudio right now there is nothing for me to improve in the current situation by these patches?
Well, at least playback will be glitch-free. :)
skobkin wrote: Thu Apr 16, 2020 12:26 pm I was planning to check if wiring PulseAudio through Jack would work but hadn't much time to properly research it.
jackdbus is fairly easy to setup. In QjackCtl it's a matter of enabling two D-Bus-related options in Misc. tab.
puleglot
Established Member
Posts: 135
Joined: Thu Jan 23, 2020 3:14 pm
Has thanked: 3 times
Been thanked: 13 times

Re: Scarlett 18i20 gen 3 Linux - Crackling Audio

Post by puleglot »

I removed old patches from this topic. If somebody is willing to test sample rate patch, please confirm that it works by providing contents of /proc/asound/USB/stream0 . Thanks!
User avatar
skobkin
Established Member
Posts: 12
Joined: Mon Apr 13, 2020 6:58 pm
Location: Arkhangelsk, Russia
Been thanked: 1 time
Contact:

Re: Scarlett 18i20 gen 3 Linux - Crackling Audio

Post by skobkin »

Just applied both patches and tested how they're working.

1. Crackling fix.
puleglot wrote: Thu Apr 16, 2020 12:42 pm Well, at least playback will be glitch-free. :)
Note: earlier I discovered that I'm getting different amount of sound distortions when using different USB ports. And then I ended using the port which caused least crackling.
Firstly I chose USB port which caused more crackling sounds of all. It sounded like that: https://yadi.sk/d/cmtr8sLIBasjxw
After applying both patches I rebooted and checked how it works. And playback worked perfectly. I didn't hear a single click in a minute.
For obvious reason (duplex is not working with this patch as @puleglot said) I can't provide a sample. But for me it sounds like crackling is completely gone.

2. Sample rate.
puleglot wrote: Thu Apr 16, 2020 12:44 pm If somebody is willing to test sample rate patch, please confirm that it works by providing contents of /proc/asound/USB/stream0

Code: Select all

$ cat /proc/asound/USB/stream0
Focusrite Scarlett 18i20 USB at usb-0000:01:00.0-2, high speed : USB Audio

Playback:
  Status: Running
    Interface = 1
    Altset = 3
    Packet Size = 360
    Momentary freq = 44100 Hz (0x5.8333)
  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
    

Code: Select all

$ uname -a
Linux skobkin-pc 5.6.4-gentoo-skobkin #1 SMP Mon Apr 13 20:44:13 MSK 2020 x86_64 AMD Ryzen Threadripper 1950X 16-Core Processor AuthenticAMD GNU/Linux
To be clear what exactly I applied to the kernel in case I've misunderstood @puleglot:

Code: Select all

$ cat /etc/portage/patches/sys-kernel/gentoo-sources-5.6.4/*.patch
diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c
index bd258f1ec2dd..4f6709dc8b9f 100644
--- a/sound/usb/pcm.c
+++ b/sound/usb/pcm.c
@@ -365,6 +365,10 @@ static int set_sync_ep_implicit_fb_quirk(struct snd_usb_substream *subs,
                ep = 0x81;
                ifnum = 2;
                goto add_sync_ep_from_ifnum;
+       case USB_ID(0x1235, 0x8215): /* Focusrite Scarlett 18i20 3rd Gen */
+               ep = 0x81;
+               ifnum = 2;
+               goto add_sync_ep_from_ifnum;
        case USB_ID(0x0582, 0x01d8): /* BOSS Katana */
                /* BOSS Katana amplifiers do not need quirks */
                return 0;
@@ -387,10 +391,11 @@ static int set_sync_ep_implicit_fb_quirk(struct snd_usb_substream *subs,
 add_sync_ep_from_ifnum:
        iface = usb_ifnum_to_if(dev, ifnum);
 
-       if (!iface || iface->num_altsetting < 2)
+       if (!iface || subs->altset_idx == 0 ||
+           subs->altset_idx >= iface->num_altsetting)
                return -EINVAL;
 
-       alts = &iface->altsetting[1];
+       alts = &iface->altsetting[subs->altset_idx];
 
 add_sync_ep:
        subs->sync_endpoint = snd_usb_add_endpoint(subs->stream->chip,
diff --git a/sound/usb/format.c b/sound/usb/format.c
index d79db71305f6..6a6d35ed25e8 100644
--- a/sound/usb/format.c
+++ b/sound/usb/format.c
@@ -226,6 +226,52 @@ static int parse_audio_format_rates_v1(struct snd_usb_audio *chip, struct audiof
        return 0;
 }
 
+/*
+ * Some Focusrite devices supports a limited set of sampling rates per
+ * altsetting. Maximum rate is exposed in the last 4 bytes of Format Type
+ * descriptor.
+ */
+static bool focusrite_valid_sample_rate(struct snd_usb_audio *chip,
+                                       struct audioformat *fp,
+                                       unsigned int rate)
+{
+       struct usb_interface *iface;
+       struct usb_host_interface *alts;
+       struct uac_format_type_i_continuous_descriptor *fmt;
+       unsigned int max_rate;
+
+       iface = usb_ifnum_to_if(chip->dev, fp->iface);
+       if (!iface)
+               return true;
+
+       alts = &iface->altsetting[fp->altset_idx];
+       fmt = snd_usb_find_csint_desc(alts->extra, alts->extralen,
+                                     NULL, UAC_FORMAT_TYPE);
+       if (!fmt)
+               return true;
+
+       if (fmt->bLength == 10) {
+               max_rate = combine_quad((unsigned char *)&fmt[6]);
+
+               /* Validate max rate */
+               if (max_rate != 48000 &&
+                   max_rate != 96000 &&
+                   max_rate != 192000 &&
+                   max_rate != 384000) {
+
+                       usb_audio_info(chip,
+                               "%u:%d : max rate validation error.\n",
+                               fp->iface, fp->altsetting);
+
+                       return true;
+               }
+
+               return rate <= max_rate;
+       }
+
+       return true;
+}
+
 /*
  * Helper function to walk the array of sample rate triplets reported by
  * the device. The problem is that we need to parse whole array first to
@@ -262,6 +308,12 @@ static int parse_uac2_sample_rate_range(struct snd_usb_audio *chip,
                }
 
                for (rate = min; rate <= max; rate += res) {
+
+                       /* Filter out invalid rates on Focusrite devices */
+                       if (USB_ID_VENDOR(chip->usb_id) == 0x1235 &&
+                           !focusrite_valid_sample_rate(chip, fp, rate))
+                               goto skip_rate;
+
                        if (fp->rate_table)
                                fp->rate_table[nr_rates] = rate;
                        if (!fp->rate_min || rate < fp->rate_min)
@@ -276,6 +328,7 @@ static int parse_uac2_sample_rate_range(struct snd_usb_audio *chip,
                                break;
                        }
 
+skip_rate:
                        /* avoid endless loop */
                        if (res == 0)
                                break;
                                
puleglot
Established Member
Posts: 135
Joined: Thu Jan 23, 2020 3:14 pm
Has thanked: 3 times
Been thanked: 13 times

Re: Scarlett 18i20 gen 3 Linux - Crackling Audio

Post by puleglot »

@skobkin thanks for testing. Sample rate patch doesn't work unfortunately. Do you see messages like "max rate validation error" in dmesg?
User avatar
skobkin
Established Member
Posts: 12
Joined: Mon Apr 13, 2020 6:58 pm
Location: Arkhangelsk, Russia
Been thanked: 1 time
Contact:

Re: Scarlett 18i20 gen 3 Linux - Crackling Audio

Post by skobkin »

puleglot wrote: Thu Apr 16, 2020 4:54 pm Do you see messages like "max rate validation error" in dmesg?

Code: Select all

# lsusb | fgrep Focusrite
Bus 001 Device 002: ID 1235:8215 Focusrite-Novation Scarlett 18i20 USB

# journalctl -b -k | fgrep -A3 -B3 'max rate'
Apr 16 19:16:01 skobkin-pc kernel: hid-generic 0003:04B4:0510.0004: input,hidraw3: USB HID v1.11 Keyboard [HID Keyboard HID Keyboard] on usb-0000:08:00.3-4.2/input1
Apr 16 19:16:01 skobkin-pc kernel: Bluetooth: hci0: read Intel version: 370810225019140f35
Apr 16 19:16:01 skobkin-pc kernel: Bluetooth: hci0: Intel device is already patched. patch num: 35
Apr 16 19:16:01 skobkin-pc kernel: usb 1-2: 1:1 : max rate validation error.
Apr 16 19:16:01 skobkin-pc kernel: usb 1-2: 1:1 : max rate validation error.
Apr 16 19:16:01 skobkin-pc kernel: usb 1-2: 1:1 : max rate validation error.
Apr 16 19:16:01 skobkin-pc kernel: usb 1-2: 1:1 : max rate validation error.
Apr 16 19:16:01 skobkin-pc kernel: usb 1-2: 1:1 : max rate validation error.
Apr 16 19:16:01 skobkin-pc kernel: usb 1-2: 1:1 : max rate validation error.
Apr 16 19:16:01 skobkin-pc kernel: usb 1-2: 1:1 : max rate validation error.
Apr 16 19:16:01 skobkin-pc kernel: usb 1-2: 1:1 : max rate validation error.
Apr 16 19:16:01 skobkin-pc kernel: usb 1-2: 1:1 : max rate validation error.
Apr 16 19:16:01 skobkin-pc kernel: usb 1-2: 1:1 : max rate validation error.
Apr 16 19:16:01 skobkin-pc kernel: usb 1-2: 1:1 : max rate validation error.
Apr 16 19:16:01 skobkin-pc kernel: usb 1-2: 1:1 : max rate validation error.
Apr 16 19:16:01 skobkin-pc kernel: EDAC amd64: F17h detected (node 0).   
Apr 16 19:16:01 skobkin-pc kernel: EDAC amd64: Node 0: DRAM ECC disabled.
Apr 16 19:16:01 skobkin-pc kernel: Bluetooth: BNEP (Ethernet Emulation) ver 1.3
--
Apr 16 19:16:02 skobkin-pc kernel: EDAC amd64: F17h detected (node 0).
Apr 16 19:16:02 skobkin-pc kernel: EDAC amd64: Node 0: DRAM ECC disabled.
Apr 16 19:16:02 skobkin-pc kernel: usb 3-4.3: new high-speed USB device number 4 using xhci_hcd
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 1:2 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 1:2 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 1:2 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 1:2 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 1:2 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 1:2 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 1:2 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 1:2 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 1:2 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 1:2 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 1:2 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 1:2 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: EDAC amd64: F17h detected (node 0).
Apr 16 19:16:02 skobkin-pc kernel: EDAC amd64: Node 0: DRAM ECC disabled.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 1:3 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 1:3 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 1:3 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 1:3 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 1:3 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 1:3 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 1:3 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 1:3 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 1:3 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 1:3 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 1:3 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 1:3 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: EDAC amd64: F17h detected (node 0).
Apr 16 19:16:02 skobkin-pc kernel: EDAC amd64: Node 0: DRAM ECC disabled.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:1 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:1 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:1 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:1 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:1 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:1 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:1 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:1 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:1 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:1 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:1 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:1 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: EDAC amd64: F17h detected (node 0).
Apr 16 19:16:02 skobkin-pc kernel: EDAC amd64: Node 0: DRAM ECC disabled.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:2 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:2 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:2 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:2 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:2 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:2 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:2 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:2 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:2 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:2 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:2 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:2 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: EDAC amd64: F17h detected (node 0).
Apr 16 19:16:02 skobkin-pc kernel: EDAC amd64: Node 0: DRAM ECC disabled.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:3 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:3 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:3 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:3 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:3 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:3 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:3 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:3 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:3 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:3 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:3 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: usb 1-2: 2:3 : max rate validation error.
Apr 16 19:16:02 skobkin-pc kernel: nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms  440.82  Wed Apr  1 19:41:29 UTC 2020
Apr 16 19:16:02 skobkin-pc kernel: EDAC amd64: F17h detected (node 0).
Apr 16 19:16:02 skobkin-pc kernel: EDAC amd64: Node 0: DRAM ECC disabled.
argh1969
Posts: 2
Joined: Thu Apr 16, 2020 6:39 pm

Re: Scarlett 18i20 gen 3 Linux - Crackling Audio

Post by argh1969 »

So glad I found this ! Thanks so much to all those involved. Any chance we can get these patches:

1. Into github for easy access.
2. Into the mainstream Linux kernel.
3. To include USB ID 1235:8213 - Focusrite Scarlett 8i6 (3rd Gen).
puleglot
Established Member
Posts: 135
Joined: Thu Jan 23, 2020 3:14 pm
Has thanked: 3 times
Been thanked: 13 times

Re: Scarlett 18i20 gen 3 Linux - Crackling Audio

Post by puleglot »

@skobkin I've improved debug output. Could you try the new patch?

Update: attached patches were broken. Removed them.
Last edited by puleglot on Sat Apr 18, 2020 12:01 am, edited 1 time in total.
Post Reply