Re: Focusrite Scarlett Gen 3 4i4 (and others)
Posted: Thu Jul 16, 2020 7:40 am
@geoffrey, I'll post things specific to 18i20 gen 3 to this thread instead.
creating music freely
https://linuxmusicians.com/
Code: Select all
Bus 001 Device 003: ID 1235:8210 Focusrite-Novation Scarlett 2i2 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 0x8210
bcdDevice 5.ff
iManufacturer 1 Focusrite
iProduct 3 Scarlett 2i2 USB
iSerial 2 Y8FMVM99921BC3
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0126
bNumInterfaces 5
bConfigurationValue 1
iConfiguration 9 Internal
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
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 2i2 USB
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdADC 2.00
bCategory 8
wTotalLength 0x0077
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 10 USB Internal
AudioControl Interface Descriptor:
bLength 8
bDescriptorType 36
bDescriptorSubtype 11 (CLOCK_SELECTOR)
bClockID 40
bNrInPins 1
baCSourceID(0) 41
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 2
bmChannelConfig 0x00000000
iChannelNames 15 Output 1
bmControls 0x0000
iTerminal 6 Scarlett 2i2 USB
AudioControl Interface Descriptor:
bLength 18
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 10
bSourceID 2
bmaControls(0) 0x00000000
bmaControls(1) 0x00000000
bmaControls(2) 0x00000000
iFeature 0
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 20
wTerminalType 0x0301 Speaker
bAssocTerminal 0
bSourceID 10
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 2
bmChannelConfig 0x00000000
iChannelNames 17 Input 1
bmControls 0x0000
iTerminal 0
AudioControl Interface Descriptor:
bLength 18
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 11
bSourceID 1
bmaControls(0) 0x00000000
bmaControls(1) 0x00000000
bmaControls(2) 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 2i2 USB
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 4 Scarlett 2i2 USB
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 4 Scarlett 2i2 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 2
bmChannelConfig 0x00000000
iChannelNames 15 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 13
Transfer Type Isochronous
Synch Type Synchronous
Usage Type Data
wMaxPacketSize 0x00c8 1x 200 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 2i2 USB
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 5 Scarlett 2i2 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 2
bmChannelConfig 0x00000000
iChannelNames 17 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 13
Transfer Type Isochronous
Synch Type Synchronous
Usage Type Data
wMaxPacketSize 0x00c8 1x 200 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 11 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 2i2 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=Y8FMVM99921BC3
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: 0x0000
(Bus Powered)
Code: Select all
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 13
Transfer Type Isochronous
Synch Type Synchronous
Usage Type Data
wMaxPacketSize 0x00c8 1x 200 bytes
bInterval 1
AudioStreaming Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 1 Milliseconds
wLockDelay 0x0200
Code: Select all
arecord -D hw:3,0 --dump-hw-params
Recording WAVE 'stdin' : Unsigned 8 bit, Rate 8000 Hz, Mono
HW Params of device "hw:3,0":
--------------------
ACCESS: MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT: S32_LE
SUBFORMAT: STD
SAMPLE_BITS: 32
FRAME_BITS: 64
CHANNELS: 2
RATE: [44100 192000]
PERIOD_TIME: [125 1486078)
PERIOD_SIZE: [8 65536]
PERIOD_BYTES: [64 524288]
PERIODS: [2 1024]
BUFFER_TIME: (83 2972155)
BUFFER_SIZE: [16 131072]
BUFFER_BYTES: [128 1048576]
TICK_TIME: ALL
--------------------
arecord: set_params:1343: Sample format non available
Available formats:
- S32_LE
Code: Select all
options snd_usb_audio device_setup=1,1,1,1Code: Select all
Linux scj643-r8 5.7.13-202.local.fc32.x86_64 #1 SMP Wed Aug 5 17:41:01 EDT 2020 x86_64 x86_64 x86_64 GNU/LinuxI also have an 8i6 and alsamixer is working for me. My scarlett.conf looks the same as yours. Are you sure you patched your kernel correctly? I'm using arch latest kernel, patched using the file you attached. However I removed lines 1 to 10 so that the file starts withscj643 wrote: ↑Thu Aug 06, 2020 12:11 am I have an 8i6. I applied the patch to my kernel but alsamixer only shows the clock source option.
This is the patch I used
0001-focusrite-gen3.txt
I followed https://fedoraproject.org/wiki/Building ... ing_kernel and https://forum.level1techs.com/t/compile ... way/149242 to build the kernel
My kernel sources are patched.
I have the following in /etc/modprobe.d/scarlett.conf
This is my kernel versionCode: Select all
options snd_usb_audio device_setup=1,1,1,1
Using the prebuilt kernel works but then DKMS won't work because I don't have the kernel source packages.Code: Select all
Linux scj643-r8 5.7.13-202.local.fc32.x86_64 #1 SMP Wed Aug 5 17:41:01 EDT 2020 x86_64 x86_64 x86_64 GNU/Linux
Code: Select all
diff --git a/sound/usb/mixer_quirks.c b/sound/usb/mixer_quirks.c I did exactly this, and since I am new to VirtualBox I had to install the Expansion Pack which enables USB accessibility. While I was doing so, something peculiar happened:jhgoodwin wrote: ↑Wed Apr 08, 2020 3:12 pm 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/
This leaves me wondering how surround sound speaker configurations would be handled in Linux? Would it depend on whether I'm using Pulseaudio, ALSA, or Jack? Would it be application-by-application like Windows, or the Gnome / Mac method with a global settings menu? Moreover, does this have to do with the driver geoffrey is creating?Working with surround sound
Because the Scarlett 18i20 is equipped with ten line outputs, it is ideally suited for use when working in multichannel sound formats – LCRS, 5.1 surround or 7.1 surround, for example.
In order to route each channel to the correct output you will need to route the DAW outputs to the Line Outputs in Focusrite Control (e.g. DAW Output 1 > Line Output 1, DAW Output 2 > Line Output 2, etc.).
Windows users:
In Windows, surround sound can only be used in software supporting multichannel ASIO. In most cases this will be your DAW, and in general, DAWs capable of mixing in surround allow you to set the speaker mapping up in the DAW’s Audio Output Preferences or I/O Settings page.
Please see the User Manual (or Help files) for your DAW for guidance on setting up the outputs for surround mixing with the speaker configuration you wish to use.
Mac users:
On Macs, surround sound configuration can be done from all applications that support multichannel audio (DAWs & regular macOS Applications). To do this, go to: Applications > Utilities > Audio MIDI Setup > Scarlett 18i20 > Configure Speakers > Configuration > Select the desired configuration.
Code: Select all
pacmd load-module module-jack-sink sink_name=Surround client_name=Surround channels=6 connect=noCode: Select all
C:\Program Files\Focusrite\Focusrite Control\Server\Resources\DevicesCode: Select all
commit 5e36fc5688cd79410d9054b7de3816d33c649b48
Author: Geoffrey D. Bennett <g@netcraft.com.au>
Date: Tue Jun 9 05:28:39 2020 +0930
Add gen 3 supportI have 1st Gen Scarletts 2i2 and 2nd Gen Scarletts 2i4. These run perfectly on my Linux notebook computer with Core i5.sadko4u wrote: ↑Wed Sep 30, 2020 3:27 pm Is Focusrite Scarlett currently good enough to work with Laptop? I'm mostly interesting about 2nd gen and 3rd gen.
Since my old firewire laptop is too rare (more than 10 years old), I need to switch to new laptop and find a good card for rehearsals/concerts.
From Scarlett I mostly need 48 kHz sample rate and full control of the internal mixer. Had no issues with Saffire Pro 40 but firewire is DEAD, at least for laptops.