Skip to content

Commit 286507e

Browse files
dathegreatperexg
authored andcommitted
USB-Audio: Add conditional channel count on Scarlett 18i20 version
Link: alsa-project#660 Signed-off-by: dathegreat <d.a.thegreat123@gmail.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
1 parent 4d9d7ad commit 286507e

2 files changed

Lines changed: 51 additions & 32 deletions

File tree

ucm2/USB-Audio/Focusrite/Scarlett-18i20-HiFi.conf

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Macro [
99
Direction Playback
1010
Format S24_3LE
1111
Channels 2
12-
HWChannels 20
12+
HWChannels "${var:DirectPlaybackChannels}"
1313
HWChannelPos0 FL
1414
HWChannelPos1 FR
1515
HWChannelPos2 FL
@@ -38,7 +38,7 @@ Macro [
3838
Direction Capture
3939
Format S24_3LE
4040
Channels 1
41-
HWChannels 20
41+
HWChannels "${var:DirectCaptureChannels}"
4242
HWChannelPos0 MONO
4343
HWChannelPos1 MONO
4444
HWChannelPos2 MONO
@@ -67,7 +67,7 @@ Macro [
6767
Direction Capture
6868
Format S24_3LE
6969
Channels 2
70-
HWChannels 20
70+
HWChannels "${var:DirectCaptureChannels}"
7171
HWChannelPos0 FL
7272
HWChannelPos1 FR
7373
HWChannelPos2 FL
@@ -96,7 +96,7 @@ Macro [
9696
Direction Playback
9797
Format S24_3LE
9898
Channels 8
99-
HWChannels 20
99+
HWChannels "${var:DirectPlaybackChannels}"
100100
HWChannelPos0 UNKNOWN
101101
HWChannelPos1 UNKNOWN
102102
HWChannelPos2 UNKNOWN
@@ -125,7 +125,7 @@ Macro [
125125
Direction Capture
126126
Format S24_3LE
127127
Channels 8
128-
HWChannels 20
128+
HWChannels "${var:DirectCaptureChannels}"
129129
HWChannelPos0 UNKNOWN
130130
HWChannelPos1 UNKNOWN
131131
HWChannelPos2 UNKNOWN
@@ -163,7 +163,7 @@ SectionDevice."Line 1" {
163163
Macro.pcm_split.SplitPCMDevice {
164164
Name "18i20_stereo_out"
165165
Direction Playback
166-
HWChannels 20
166+
HWChannels "${var:DirectPlaybackChannels}"
167167
Channels 2
168168
Channel0 6
169169
Channel1 7
@@ -182,7 +182,7 @@ SectionDevice."Line 2" {
182182
Macro.pcm_split.SplitPCMDevice {
183183
Name "18i20_stereo_out"
184184
Direction Playback
185-
HWChannels 20
185+
HWChannels "${var:DirectPlaybackChannels}"
186186
Channels 2
187187
Channel0 8
188188
Channel1 9
@@ -201,7 +201,7 @@ SectionDevice."Line 3" {
201201
Macro.pcm_split.SplitPCMDevice {
202202
Name "18i20_stereo_out"
203203
Direction Playback
204-
HWChannels 20
204+
HWChannels "${var:DirectPlaybackChannels}"
205205
Channels 2
206206
Channel0 0
207207
Channel1 1
@@ -220,7 +220,7 @@ SectionDevice."Line 4" {
220220
Macro.pcm_split.SplitPCMDevice {
221221
Name "18i20_stereo_out"
222222
Direction Playback
223-
HWChannels 20
223+
HWChannels "${var:DirectPlaybackChannels}"
224224
Channels 2
225225
Channel0 2
226226
Channel1 3
@@ -239,7 +239,7 @@ SectionDevice."Line 5" {
239239
Macro.pcm_split.SplitPCMDevice {
240240
Name "18i20_stereo_out"
241241
Direction Playback
242-
HWChannels 20
242+
HWChannels "${var:DirectPlaybackChannels}"
243243
Channels 2
244244
Channel0 4
245245
Channel1 5
@@ -262,7 +262,7 @@ SectionDevice."Line 6" {
262262
Macro.pcm_split.SplitPCMDevice {
263263
Name "18i20_stereo_out"
264264
Direction Playback
265-
HWChannels 20
265+
HWChannels "${var:DirectPlaybackChannels}"
266266
Channels 2
267267
Channel0 6
268268
Channel1 7
@@ -281,7 +281,7 @@ SectionDevice."Line 7" {
281281
Macro.pcm_split.SplitPCMDevice {
282282
Name "18i20_stereo_out"
283283
Direction Playback
284-
HWChannels 20
284+
HWChannels "${var:DirectPlaybackChannels}"
285285
Channels 2
286286
Channel0 8
287287
Channel1 9
@@ -302,7 +302,7 @@ SectionDevice."Mic 1" {
302302
Macro.pcm_split.SplitPCMDevice {
303303
Name "18i20_mono_in"
304304
Direction Capture
305-
HWChannels 20
305+
HWChannels "${var:DirectCaptureChannels}"
306306
Channels 1
307307
Channel0 0
308308
ChannelPos0 MONO
@@ -319,7 +319,7 @@ SectionDevice."Mic 2" {
319319
Macro.pcm_split.SplitPCMDevice {
320320
Name "18i20_mono_in"
321321
Direction Capture
322-
HWChannels 20
322+
HWChannels "${var:DirectCaptureChannels}"
323323
Channels 1
324324
Channel0 1
325325
ChannelPos0 MONO
@@ -336,7 +336,7 @@ SectionDevice."Line 8" {
336336
Macro.pcm_split.SplitPCMDevice {
337337
Name "18i20_mono_in"
338338
Direction Capture
339-
HWChannels 20
339+
HWChannels "${var:DirectCaptureChannels}"
340340
Channels 1
341341
Channel0 2
342342
ChannelPos0 MONO
@@ -353,7 +353,7 @@ SectionDevice."Line 9" {
353353
Macro.pcm_split.SplitPCMDevice {
354354
Name "18i20_mono_in"
355355
Direction Capture
356-
HWChannels 20
356+
HWChannels "${var:DirectCaptureChannels}"
357357
Channels 1
358358
Channel0 3
359359
ChannelPos0 MONO
@@ -370,7 +370,7 @@ SectionDevice."Line 10" {
370370
Macro.pcm_split.SplitPCMDevice {
371371
Name "18i20_mono_in"
372372
Direction Capture
373-
HWChannels 20
373+
HWChannels "${var:DirectCaptureChannels}"
374374
Channels 1
375375
Channel0 4
376376
ChannelPos0 MONO
@@ -387,7 +387,7 @@ SectionDevice."Line 11" {
387387
Macro.pcm_split.SplitPCMDevice {
388388
Name "18i20_mono_in"
389389
Direction Capture
390-
HWChannels 20
390+
HWChannels "${var:DirectCaptureChannels}"
391391
Channels 1
392392
Channel0 5
393393
ChannelPos0 MONO
@@ -404,7 +404,7 @@ SectionDevice."Line 12" {
404404
Macro.pcm_split.SplitPCMDevice {
405405
Name "18i20_mono_in"
406406
Direction Capture
407-
HWChannels 20
407+
HWChannels "${var:DirectCaptureChannels}"
408408
Channels 1
409409
Channel0 6
410410
ChannelPos0 MONO
@@ -421,7 +421,7 @@ SectionDevice."Line 13" {
421421
Macro.pcm_split.SplitPCMDevice {
422422
Name "18i20_mono_in"
423423
Direction Capture
424-
HWChannels 20
424+
HWChannels "${var:DirectCaptureChannels}"
425425
Channels 1
426426
Channel0 7
427427
ChannelPos0 MONO
@@ -440,7 +440,7 @@ SectionDevice."SPDIF 1" {
440440
Macro.pcm_split.SplitPCMDevice {
441441
Name "18i20_stereo_out"
442442
Direction Playback
443-
HWChannels 20
443+
HWChannels "${var:DirectPlaybackChannels}"
444444
Channels 2
445445
Channel0 10
446446
Channel1 11
@@ -461,7 +461,7 @@ SectionDevice."Direct 1" {
461461
Macro.pcm_split.SplitPCMDevice {
462462
Name "18i20_adat_out"
463463
Direction Playback
464-
HWChannels 20
464+
HWChannels "${var:DirectPlaybackChannels}"
465465
Channels 8
466466
Channel0 12
467467
Channel1 13
@@ -494,7 +494,7 @@ SectionDevice."SPDIF 2" {
494494
Macro.pcm_split.SplitPCMDevice {
495495
Name "18i20_mono_in"
496496
Direction Capture
497-
HWChannels 20
497+
HWChannels "${var:DirectCaptureChannels}"
498498
Channels 1
499499
Channel0 10
500500
ChannelPos0 MONO
@@ -511,7 +511,7 @@ SectionDevice."SPDIF 3" {
511511
Macro.pcm_split.SplitPCMDevice {
512512
Name "18i20_mono_in"
513513
Direction Capture
514-
HWChannels 20
514+
HWChannels "${var:DirectCaptureChannels}"
515515
Channels 1
516516
Channel0 11
517517
ChannelPos0 MONO
@@ -530,7 +530,7 @@ SectionDevice."Direct 2" {
530530
Macro.pcm_split.SplitPCMDevice {
531531
Name "18i20_adat_in"
532532
Direction Capture
533-
HWChannels 20
533+
HWChannels "${var:DirectCaptureChannels}"
534534
Channels 8
535535
Channel0 12
536536
Channel1 13

ucm2/USB-Audio/Focusrite/Scarlett-18i20.conf

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# The 18i20 provides 20 playback and capture channels each:
1+
# The 18i20 provides 20 playback and 18 or 20 capture channels each:
22
#
33
# +----+---------------+-----------------+
44
# | Ch | Inputs | Outputs |
@@ -56,14 +56,30 @@
5656
#
5757

5858
Define.Generation "1st"
59+
Define.DirectPlaybackChannels 20
60+
Define.DirectCaptureChannels 20 # fallback; overridden per generation
61+
62+
If.gen1 {
63+
Condition {
64+
Type RegexMatch
65+
String "${CardComponents}"
66+
Regex "USB1235:800c"
67+
}
68+
True.Define {
69+
DirectCaptureChannels 18
70+
}
71+
}
5972

6073
If.gen2 {
6174
Condition {
6275
Type RegexMatch
6376
String "${CardComponents}"
6477
Regex "USB1235:8201"
6578
}
66-
True.Define.Generation "2nd"
79+
True.Define {
80+
Generation "2nd"
81+
DirectCaptureChannels 18
82+
}
6783
}
6884

6985
If.gen3 {
@@ -72,7 +88,10 @@ If.gen3 {
7288
String "${CardComponents}"
7389
Regex "USB1235:8215"
7490
}
75-
True.Define.Generation "3rd"
91+
True.Define {
92+
Generation "3rd"
93+
DirectCaptureChannels 20
94+
}
7695
}
7796

7897
If.gen4 {
@@ -81,7 +100,10 @@ If.gen4 {
81100
String "${CardComponents}"
82101
Regex "USB1235:821d"
83102
}
84-
True.Define.Generation "4th"
103+
True.Define {
104+
Generation "4th"
105+
DirectCaptureChannels 20
106+
}
85107
}
86108

87109
Comment "Focusrite Scarlett 18i20 ${var:Generation} Gen"
@@ -91,7 +113,4 @@ SectionUseCase."HiFi" {
91113
File "/USB-Audio/Focusrite/Scarlett-18i20-HiFi.conf"
92114
}
93115

94-
Define.DirectPlaybackChannels 20
95-
Define.DirectCaptureChannels 20
96-
97116
Include.dhw.File "/common/direct.conf"

0 commit comments

Comments
 (0)