Skip to content

Commit

Permalink
Add Clarett support
Browse files Browse the repository at this point in the history
  • Loading branch information
geoffreybennett committed Aug 11, 2022
1 parent be3f126 commit 65c0f6a
Show file tree
Hide file tree
Showing 4 changed files with 6,486 additions and 23 deletions.
27 changes: 14 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,25 @@ the Linux kernel Focusrite Scarlett Gen 2/3 Mixer Driver.

<img src="src/img/alsa-scarlett-gui-logo.png" align="right">

The Focusrite Scarlett interfaces are class compliant USB audio
interfaces meaning that they work “out of the box” on Linux as audio
and MIDI interfaces (although on Gen 3 you need to disable MSD mode
first). However, the Gen 2 6i6+ and Gen 3 4i4+ interfaces have a bunch
of proprietary functionality that required a kernel driver to be
written specifically for those devices.
The Focusrite Scarlett (and Clarett+) interfaces are class compliant
USB audio interfaces meaning that they work “out of the box” on Linux
as audio and MIDI interfaces (although on Gen 3 you need to disable
MSD mode first). However, the Gen 2 6i6+, Gen 3 4i4+, and Clarett+
interfaces have a bunch of proprietary functionality that required a
kernel driver to be written specifically for those devices.

Linux kernel support (“ALSA Focusrite Scarlett Gen 2/3 Mixer Driver”)
for the proprietary functionality of Gen 2 devices was first added in
5.4 and Gen 3 devices in 5.14.
5.4, Gen 3 devices in 5.14, and Clarett+ 8Pre is coming in 6.1.

Unfortunately, actually using this functionality was quite awful. The
existing applications like `alsamixer` and `qasmixer` become
completely user-hostile with the hundreds of controls presented for
the Gen 3 18i20. Even the smallest Gen 3 4i4 interface at last count
had 84 ALSA controls.
Unfortunately, actually using this functionality used to be quite an
awful experience. The existing applications like `alsamixer` and
`qasmixer` become completely user-hostile with the hundreds of
controls presented for the Gen 3 18i20. Even the smallest Gen 3 4i4
interface at last count had 84 ALSA controls.

Announcing the ALSA Scarlett Gen 2/3 Control Panel!
Announcing the ALSA Scarlett Gen 2/3 (and Clarett+ 8Pre!) Control
Panel!

![Demonstration](img/demo.gif)

Expand Down
24 changes: 15 additions & 9 deletions USAGE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,22 @@

Linux Kernel with the ALSA Scarlett Gen 2/3 mixer driver. Use at least
version 5.14 for Scarlett Gen 3 support and bug fixes for the Gen 2
support.
support. For Clarett+ 8Pre support, wait for 6.1 or see
https://github.com/geoffreybennett/scarlett-gen2/commits/scarlett-gen3
for kernel patches.

As of Linux 5.17, the driver is still disabled by default and needs to
As of Linux 6.0, the driver is still disabled by default and needs to
be enabled at module load time with the `device_setup=1` option to
insmod/modprobe. Create a file /etc/modprobe.d/scarlett.conf
containing the appropriate line for your device:

Gen 2:
Scarlett Gen 2:

- 6i6: `options snd_usb_audio vid=0x1235 pid=0x8203 device_setup=1`
- 18i8: `options snd_usb_audio vid=0x1235 pid=0x8204 device_setup=1`
- 18i20: `options snd_usb_audio vid=0x1235 pid=0x8201 device_setup=1`

Gen 3:
Scarlett Gen 3:

- Solo: `options snd_usb_audio vid=0x1235 pid=0x8211 device_setup=1`
- 2i2: `options snd_usb_audio vid=0x1235 pid=0x8210 device_setup=1`
Expand All @@ -26,6 +28,10 @@ Gen 3:
- 18i8: `options snd_usb_audio vid=0x1235 pid=0x8214 device_setup=1`
- 18i20: `options snd_usb_audio vid=0x1235 pid=0x8215 device_setup=1`

Clarett+:

- 8Pre: `options snd_usb_audio vid=0x1235 pid=0x820c device_setup=1`

Or you can use a sledgehammer:
```
options snd_usb_audio device_setup=1,1,1,1
Expand Down Expand Up @@ -138,7 +144,7 @@ The one control not accessible from the front panel is “Phantom Power
Persistence” (menu option View → Startup) which controls the Phantom
Power state when the interface is powered on.

## Gen 2 6i6+ and Gen 3 4i4+ Interfaces
## Gen 2 6i6+, Gen 3 4i4+, and Clarett+ Interfaces

The Gen 2 6i6+ and Gen 3 4i4+ interfaces have many controls available.
The controls are split between 4 windows, 3 of which are by default
Expand Down Expand Up @@ -236,7 +242,7 @@ level/impedance. When plugging in microphones or line-level equipment
to the input, set it to “Line”. The “Inst” setting is for instrument
with pickups such as guitars.

#### Air (Gen 3 only)
#### Air (Gen 3 and Clarett+ only)

Enabling Air will transform your recordings and inspire you while
making music.
Expand Down Expand Up @@ -342,9 +348,9 @@ configuration:

#### Loopback

Gen 2 interfaces have as many PCM Inputs as Hardware Inputs. Gen 3
interfaces have two more PCM Inputs which the proprietary driver
restricts to being “Loopback” inputs.
Gen 2 and Clarett+ interfaces have as many PCM Inputs as Hardware
Inputs. Gen 3 interfaces have two more PCM Inputs which the
proprietary driver restricts to being “Loopback” inputs.

The “Loopback” feature advertised for Gen 3 devices is actually a
limitation of the propretary Focusrite Control software. Both Gen 2
Expand Down
Loading

0 comments on commit 65c0f6a

Please sign in to comment.