Focusrite Scarlett Gen 3 4i4 (and others)
Moderators: MattKingUSA, khz
-
- Established Member
- Posts: 10
- Joined: Sun Apr 29, 2012 3:08 pm
Re: Focusrite Scarlett Gen 3 4i4 (and others)
ok...
for now I can record and playback succesfully with a 48k buffer 128 (jack cadence and lowlatency 5.3.0-28)
I have independent sound from headphones when I route sound to the outputs 3-4. And if I want monitoring every input with the headphones I have to route every input to 3&4 outputs (in my old Edirol UA25ex I had a direct analog monitoring).
I'm waiting for driver for use the rest of funcionalities...
If I can do it something just tell me.
Thanks!
for now I can record and playback succesfully with a 48k buffer 128 (jack cadence and lowlatency 5.3.0-28)
I have independent sound from headphones when I route sound to the outputs 3-4. And if I want monitoring every input with the headphones I have to route every input to 3&4 outputs (in my old Edirol UA25ex I had a direct analog monitoring).
I'm waiting for driver for use the rest of funcionalities...
If I can do it something just tell me.
Thanks!
Ó.
not english fluently...
not english fluently...
Re: Focusrite Scarlett Gen 3 4i4 (and others)
I've a Focusrite Scarlett 2i2 Gen 3 due to be arriving on Thursday.
Happy to help out testing any code on my (Arch) linux machine. Alas I have no virtual Windows install on this machine, so can't grab the commands that the Focusrite software sends.
Also happy to reviewing code before sending a patch into mainline, know how hard that can be at times (I've done device tree for some arm machines on mainline kernel).
Regards, and thanks for the work.
David.
Happy to help out testing any code on my (Arch) linux machine. Alas I have no virtual Windows install on this machine, so can't grab the commands that the Focusrite software sends.
Also happy to reviewing code before sending a patch into mainline, know how hard that can be at times (I've done device tree for some arm machines on mainline kernel).
Regards, and thanks for the work.
David.
Re: Focusrite Scarlett Gen 3 4i4 (and others)
USB id of the 3rd generation 2i2 is:
ID 1235:8210 Focusrite-Novation Scarlett 2i2 USB
As I note you used in in the first two generation linux drivers. I know this device can be controlled by buttons, but would be good to control by software as well.
ID 1235:8210 Focusrite-Novation Scarlett 2i2 USB
As I note you used in in the first two generation linux drivers. I know this device can be controlled by buttons, but would be good to control by software as well.
-
- Established Member
- Posts: 33
- Joined: Fri Apr 21, 2017 10:52 am
- Has thanked: 3 times
- Been thanked: 2 times
Re: Focusrite Scarlett Gen 3 4i4 (and others)
I've just bought a 3rd Gen 18i8. Audio works out of the box. It doesn't show up as a MIDI interface, presumably because it's still in 'MSD Mode'. Holding down the 48V switch didn't seem to take it out of MSD Mode, so I'll have to do that next time I have a Windows machine with Focusrite Control.
Keen to help geoffey's noble efforts if I can, or just contribute to a beer fund! Unfortunately I don't know how to compile a kernel. @geoffrey, where are you based?
Keen to help geoffey's noble efforts if I can, or just contribute to a beer fund! Unfortunately I don't know how to compile a kernel. @geoffrey, where are you based?
-
- Established Member
- Posts: 135
- Joined: Thu Jan 23, 2020 3:14 pm
- Has thanked: 3 times
- Been thanked: 13 times
-
- Posts: 1
- Joined: Sat Mar 28, 2020 3:42 pm
Re: Focusrite Scarlett Gen 3 4i4 (and others)
Did i get i right that the Focusrite Scarlett Solo 3rd Gen is woring under linux? Im using Manjaro 4.14.
I want to use the Focusrite Scarlett Solo 3rd Gen with 2x Tannoy Reveal 402.
I want to use the Focusrite Scarlett Solo 3rd Gen with 2x Tannoy Reveal 402.
Re: Focusrite Scarlett Gen 3 4i4 (and others)
@geoffrey still working on the 3 gen driver? Happy to hear how it goes.
Cheers, Per
Cheers, Per
Re: Focusrite Scarlett Gen 3 4i4 (and others)
FYI, for those who would use a windows virtual machine if they could, Microsoft offers development virtual machines for free which is set with a time limit. They keep updating the VM image with a newer time limit:
https://developer.microsoft.com/en-us/w ... -machines/
Hope this helps testing move along.
Re: Focusrite Scarlett Gen 3 4i4 (and others)
Excited to find this thread. Thanks for all of the hard work here!
I wanted to provide some info on my new 8i6 and also see if anyone had a suggestion on a problem I'm having.
I've use a gen2 2i2 and 6i6 with absolutely no problems in Linux. Just got a gen3 8i6, and I'm getting a lot of popping on the output. Jack is recognizing it fine, and I'm getting no XRUNs. Any ideas?
Here is the 'lsusb' info. Glad to help/test anything. THANKS!
I wanted to provide some info on my new 8i6 and also see if anyone had a suggestion on a problem I'm having.
I've use a gen2 2i2 and 6i6 with absolutely no problems in Linux. Just got a gen3 8i6, and I'm getting a lot of popping on the output. Jack is recognizing it fine, and I'm getting no XRUNs. Any ideas?
Here is the 'lsusb' info. Glad to help/test anything. THANKS!
Code: Select all
$ lsusb -v -d 1235:8213
Bus 001 Device 008: ID 1235:8213 Focusrite-Novation Scarlett 8i6 USB
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.10
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
idVendor 0x1235 Focusrite-Novation
idProduct 0x8213
bcdDevice 6.10
iManufacturer 1 Focusrite
iProduct 3 Scarlett 8i6 USB
iSerial 2 F8CHCG29B801BD
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x013d
bNumInterfaces 5
bConfigurationValue 1
iConfiguration 9 Internal
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 Scarlett 8i6 USB
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdADC 2.00
bCategory 8
wTotalLength 0x008e
bmControls 0x00
AudioControl Interface Descriptor:
bLength 8
bDescriptorType 36
bDescriptorSubtype 10 (CLOCK_SOURCE)
bClockID 41
bmAttributes 3 Internal programmable clock
bmControls 0x07
Clock Frequency Control (read/write)
Clock Validity Control (read-only)
bAssocTerminal 0
iClockSource 9 Internal
AudioControl Interface Descriptor:
bLength 8
bDescriptorType 36
bDescriptorSubtype 10 (CLOCK_SOURCE)
bClockID 42
bmAttributes 0 External clock
bmControls 0x07
Clock Frequency Control (read/write)
Clock Validity Control (read-only)
bAssocTerminal 0
iClockSource 11 S/PDIF
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 11 (CLOCK_SELECTOR)
bClockID 40
bNrInPins 2
baCSourceID(0) 41
baCSourceID(1) 42
bmControls 0x03
Clock Selector Control (read/write)
iClockSelector 8 Clock Source
AudioControl Interface Descriptor:
bLength 17
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 2
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bCSourceID 40
bNrChannels 6
bmChannelConfig 0x00000000
iChannelNames 18 Output 1
bmControls 0x0000
iTerminal 6 Scarlett 8i6 USB
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 10
bmChannelConfig 0x00000000
iChannelNames 24 Input 1
bmControls 0x0000
iTerminal 0
AudioControl Interface Descriptor:
bLength 50
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
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 Scarlett 8i6 USB
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 4 Scarlett 8i6 USB
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 4 Scarlett 8i6 USB
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 6
bmChannelConfig 0x00000000
iChannelNames 18 Output 1
AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 4
bBitResolution 24
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0258 1x 600 bytes
bInterval 1
AudioStreaming Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 1 Milliseconds
wLockDelay 0x0200
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 5 Scarlett 8i6 USB
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 5 Scarlett 8i6 USB
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 24 Input 1
AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 4
bBitResolution 24
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
AudioStreaming Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 1 Milliseconds
wLockDelay 0x0200
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 1
bInterfaceProtocol 32
iInterface 14 Focusrite Control
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 2
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk-Only
iInterface 3 Scarlett 8i6 USB
Endpoint Descriptor:
bLength 7
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
Endpoint Descriptor:
bLength 7
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
Binary Object Store Descriptor:
bLength 5
bDescriptorType 15
wTotalLength 0x0040
bNumDeviceCaps 3
Platform Device Capability:
bLength 28
bDescriptorType 16
bDevCapabilityType 5
bReserved 0
PlatformCapabilityUUID {d8dd60df-4589-4cc7-9cd2-659d9e648a9f}
CapabilityData[0] 0x00
CapabilityData[1] 0x00
CapabilityData[2] 0x03
CapabilityData[3] 0x06
CapabilityData[4] 0x2e
CapabilityData[5] 0x00
CapabilityData[6] 0x02
CapabilityData[7] 0x00
Platform Device Capability:
bLength 24
bDescriptorType 16
bDevCapabilityType 5
bReserved 0
PlatformCapabilityUUID {3408b638-09a9-47a0-8bfd-a0768815b665}
WebUSB:
bcdVersion 1.00
bVendorCode 1
iLandingPage 1 https://api.focusrite-novation.com/register?method=usb&upn=F8CHCG29B801BD
USB 2.0 Extension Device Capability:
bLength 7
bDescriptorType 16
bDevCapabilityType 2
bmAttributes 0x00000000
(Missing must-be-set LPM bit!)
can't get debug descriptor: Resource temporarily unavailable
Device Status: 0x0001
Self Powered
Re: Focusrite Scarlett Gen 3 4i4 (and others)
@jsh
hehe look at my post here : viewtopic.php?p=116413#p116413
you have to build your kernel with this patch.
hehe look at my post here : viewtopic.php?p=116413#p116413
you have to build your kernel with this patch.
Re: Focusrite Scarlett Gen 3 4i4 (and others)
Ah; thanks! Do you mind explaining what's going on here? (I am a programmer, but I'm not familiar with this code, and there's not much context.) Thanks!triiif wrote: ↑Fri Apr 10, 2020 7:57 am @jsh
hehe look at my post here : viewtopic.php?p=116413#p116413
you have to build your kernel with this patch.
-
- Established Member
- Posts: 135
- Joined: Thu Jan 23, 2020 3:14 pm
- Has thanked: 3 times
- Been thanked: 13 times
Re: Focusrite Scarlett Gen 3 4i4 (and others)
USB audio devices that works in asynchronous mode must provide feedback to the host. This is because devices' internal clock is completely independent and the host needs some sort of feedback to adjust its data packet rate. Otherwise device buffer will periodically overflow or underflow. There are two types of feedback: explicit and implicit. Most of the UAC2 devices have dedicated explicit feedback endpoint and this configuration is perfectly supported by the snd-usb-audio driver. But some newer devices like Focusrite Scarlett Gen3 and MOTU M2/M4 doesn't provide explicit feedback endpoint. The driver should use the number of captured sample frames to construct packets for the playback stream. So the capture endpoint also acts as an implicit feedback endpoint. You can see this in USB descriptors (capture endpoint has type "Implicit feedback Data"):
Code: Select all
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
- the driver currently doesn't support autodetection of implicit feedback;
- when implicit feedback is enabled, full duplex mode works only with jack.
- skobkin
- Established Member
- Posts: 12
- Joined: Mon Apr 13, 2020 6:58 pm
- Location: Arkhangelsk, Russia
- Been thanked: 1 time
- Contact:
Re: Focusrite Scarlett Gen 3 4i4 (and others)
Hi!
Recently I've found that Focusrite implemented multiple channel support for Windows (WDM) and now you can see all your outputs and inputs in the same way you configured them in the Focusrite Control.
That's what I'm missing in Linux/PulseAudio now.
Not sure if it can help but if it is, then you can try Focusrite_USB_4.64.15.598_Installer_611.exe from beta.focusrite.com.
Also if you need some help with testing new kernel patches or something like that, I could probably help to gather data for 18i20 gen3 on my machine.
Recently I've found that Focusrite implemented multiple channel support for Windows (WDM) and now you can see all your outputs and inputs in the same way you configured them in the Focusrite Control.
That's what I'm missing in Linux/PulseAudio now.
Not sure if it can help but if it is, then you can try Focusrite_USB_4.64.15.598_Installer_611.exe from beta.focusrite.com.
Code: Select all
Changes since last release (4.63.24):
- Fixed an issue that caused some DAWs (namely Studio One, Reason and Sibelius) to expose buffer sizes that we don't support
- Added multichannel WDM support (surround sound)
- Added multiple WDM inputs and outputs
- Fixed an issue with older AMD processors that could cause glitching
- Numerous stability and performance improvements
Last edited by skobkin on Mon Apr 13, 2020 7:12 pm, edited 1 time in total.
- bluebell
- Established Member
- Posts: 1924
- Joined: Sat Sep 15, 2012 11:44 am
- Location: Saarland, Germany
- Has thanked: 112 times
- Been thanked: 119 times
Re: Focusrite Scarlett Gen 3 4i4 (and others)
Hmm... I have a 2i4 2nd gen that works perfectly with jackd without tweaks and "lsusb -v" mentions implicit feedback.puleglot wrote: ↑Fri Apr 10, 2020 6:05 pmUSB audio devices that works in asynchronous mode must provide feedback to the host. This is because devices' internal clock is completely independent and the host needs some sort of feedback to adjust its data packet rate. Otherwise device buffer will periodically overflow or underflow. There are two types of feedback: explicit and implicit. Most of the UAC2 devices have dedicated explicit feedback endpoint and this configuration is perfectly supported by the snd-usb-audio driver. But some newer devices like Focusrite Scarlett Gen3 and MOTU M2/M4 doesn't provide explicit feedback endpoint. The driver should use the number of captured sample frames to construct packets for the playback stream. So the capture endpoint also acts as an implicit feedback endpoint. You can see this in USB descriptors (capture endpoint has type "Implicit feedback Data"):There are two problems with implicit feedback:Code: Select all
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
- the driver currently doesn't support autodetection of implicit feedback;
- when implicit feedback is enabled, full duplex mode works only with jack.
Linux – MOTU UltraLite AVB – Qtractor – http://suedwestlicht.saar.de/
-
- Established Member
- Posts: 135
- Joined: Thu Jan 23, 2020 3:14 pm
- Has thanked: 3 times
- Been thanked: 13 times
Re: Focusrite Scarlett Gen 3 4i4 (and others)
Gen2 devices has dedicated feedback endpoint, so explicit feedback is being used by the driver:
Code: Select all
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 17
Transfer Type Isochronous
Synch Type None
Usage Type Feedback
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 4