Focusrite Scarlett 18i20 Gen 1: UCM configuration defines incorrect capture channel count

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



alsa-project/alsa-ucm-conf issue #588 was opened from mkuhl:

## Summary
The ALSA UCM configuration for Focusrite Scarlett 18i20 incorrectly defines 20 capture channels (`Define.DirectCaptureChannels 20`), but the 1st generation hardware only supports 18 channels. This causes the device to fail initialization with UCM profile errors.

## Device Information
- **Device**: Focusrite Scarlett 18i20 (1st Generation)
- **USB ID**: 1235:800c
- **USB Name**: Focusrite Scarlett 18i20 USB
- **Driver**: snd_usb_audio

## Channel Configuration (Gen 1)
- 8 analog inputs
- 8 ADAT inputs  
- 2 S/PDIF inputs
- **Total**: 18 input channels (not 20)

## Error Message
```
spa.alsa: Error in ALSA UCM profile for _ucm0007.hw:USB,0 (HiFi: Direct 2: source): CaptureChannels=20 > avail 18
spa.alsa: Errors in ALSA UCM profile for card Scarlett 18i20
```

## Affected Files
The channel definition is in the main configuration file:
`/usr/share/alsa/ucm2/USB-Audio/Focusrite/Scarlett-18i20.conf`

Current (incorrect):
```
Define.DirectCaptureChannels 20
```

Should be:
```
Define.DirectCaptureChannels 18
```

This file then includes `Scarlett-18i20-HiFi.conf` which uses the defined value.

## System Information
- **Distribution**: Fedora 42 / Aurora-dx
- **Kernel**: 6.15.3-200.fc42.x86_64
- **PipeWire**: 1.4.5-1.fc42
- **WirePlumber**: 0.5.8-1.fc42
- **ALSA UCM**: 1.2.14-2.fc42
- **ALSA lib**: 1.2.14-2.fc42

## Steps to Reproduce
1. Connect Focusrite Scarlett 18i20 Gen 1 (USB ID 1235:800c)
2. Start PipeWire/WirePlumber
3. Check device status: `wpctl status | grep Scarlett`
4. Device shows "[ALSA UCM error]"
5. Journal shows channel count mismatch error

## Workaround
Users can create a local override:
```bash
mkdir -p ~/.local/share/alsa/ucm2/USB-Audio/Focusrite/
cp /usr/share/alsa/ucm2/USB-Audio/Focusrite/Scarlett-18i20.conf \
   ~/.local/share/alsa/ucm2/USB-Audio/Focusrite/
cp /usr/share/alsa/ucm2/USB-Audio/Focusrite/Scarlett-18i20-HiFi.conf \
   ~/.local/share/alsa/ucm2/USB-Audio/Focusrite/
sed -i 's/Define.DirectCaptureChannels 20/Define.DirectCaptureChannels 18/g' \
   ~/.local/share/alsa/ucm2/USB-Audio/Focusrite/Scarlett-18i20.conf
```

## Root Cause Analysis
The UCM configuration appears to be written for newer Scarlett 18i20 generations (2nd/3rd/4th Gen) which may have 20 channels due to additional loopback channels. The configuration includes generation detection logic but doesn't properly identify USB ID 1235:800c as a 1st Gen device, causing it to use the default 20-channel configuration.

## Proposed Solution
The UCM configuration should detect Gen 1 devices and set the appropriate channel count:

1. Add detection for USB ID 1235:800c as Gen 1
2. Set `DirectCaptureChannels` to 18 for Gen 1 devices
3. Keep 20 channels for newer generations if applicable

## Impact
- Device fails to initialize properly
- Users cannot use the audio interface without manual workarounds
- Affects all Linux distributions using this UCM configuration

## Additional Information
- This is a regression - older ALSA versions worked correctly
- The issue affects PipeWire/WirePlumber but not JACK when using Pro Audio profile (which bypasses UCM)
- Other Gen 1 Scarlett devices (6i6, 8i8) may have similar issues

## References
- Device specifications: https://support.focusrite.com/hc/en-gb/articles/206849839-Scarlett-1st-Gen-Tech-Specs

Issue URL     : https://github.com/alsa-project/alsa-ucm-conf/issues/588
Repository URL: https://github.com/alsa-project/alsa-ucm-conf



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux