]> git.alsa-project.org Git - alsa-lib.git/blob - src/conf/cards/USB-Audio.conf
2f6d2ee0af3d4e51079ded95ae40c3450b0547f1
[alsa-lib.git] / src / conf / cards / USB-Audio.conf
1 #
2 #  USB-Audio.conf - configuration for USB Audio devices
3 #
4 #
5 #  DO NO EDIT; this is an internal ALSA file.
6 #  If you want to add your own definitions, put them into /etc/asound.conf or
7 #  ~/.asoundrc, with "cards." before the "USB-Audio", e.g.:
8 #
9 #  cards.USB-Audio.pcm.use_dmix."NoiseBlaster 3000" no
10 #
11 #  If your device requires such a definition to work correctly, please report it
12 #  to <alsa-devel@alsa-project.org>.
13
14
15 # If a device has sample formats not supported by dmix, dmix can be disabled
16 # here.
17 USB-Audio.pcm.use_dmix {
18         "AudioPhile" no    # uses big-endian 24-bit samples
19         "Audiophile USB (tm)" no
20 }
21
22 # If a device does not have a four-channel mode for the front/rear outputs,
23 # other modes can be selected here.
24 # six_channels       - for devices that route the last two of the four channels
25 #                      to the center/LFE outputs
26 # two_stereo_devices - for devices that have two stereo audio interfaces
27 USB-Audio.pcm.surround40_type {
28         "AudioPhile" two_stereo_devices
29         "Audiophile USB (tm)" two_stereo_devices
30         "ICUSBAUDIO7D" six_channels
31         "OmniStudio" two_stereo_devices
32         "Quattro" two_stereo_devices
33         "SB Audigy 2 NX" six_channels
34         "USB AudioSport Quattro (tm)" two_stereo_devices
35 }
36
37 # If a device does not use the first PCM device for digital data, the device
38 # number for the iec958 device can be changed here.
39 USB-Audio.pcm.iec958_device {
40         # "NoiseBlaster 3000" 42
41         "USB Sound Blaster HD" 1
42         "SB Omni Surround 5.1" 1
43
44         "Xonar U7" 1
45         "Xonar U7 MKII" 1
46         "ASUS XONAR U5" 1
47         "XONAR U5" 1
48         "XONAR SOUND CARD" 1
49         "Xonar SoundCard" 2
50         
51         # The below don't have digital in/out, so prevent them from being opened.
52         "Andrea PureAudio USB-SA Headset" 999
53         "Blue Snowball" 999
54         "C-Media USB Headphone Set" 999
55         "Cmedia Audio" 999
56         "Corsair HS60 PRO Surround USB S" 999
57         "DELL PROFESSIONAL SOUND BAR AE5" 999
58         "HP Digital Stereo Headset" 999
59         "GN 9330" 999
60         "Logitech Speaker Lapdesk N700" 999
61         "Logitech G35 Headset" 999
62         "Logitech USB Headset" 999
63         "Logitech USB Headset H540" 999
64         "Logitech Wireless Headset" 999
65         "Plantronics Blackwire 3220 Seri" 999
66         "Plantronics GameCom 780" 999
67         "Plantronics USB Headset" 999
68         "Plantronics Wireless Audio" 999
69         "SB WoW Headset" 999
70         "Scarlett 2i2 4th Gen" 999
71         "Scarlett 2i2 USB" 999
72         "Scarlett 2i4 USB" 999
73         "Scarlett Solo 4th Gen" 999
74         "Scarlett Solo USB" 999
75         "Sennheiser USB headset" 999
76         "SWTOR Gaming Headset by Razer" 999
77         "ThinkStation P620 Main" 999
78         "ThinkStation P620 Rear" 999
79         "Thunderbolt Dock Audio Headset" 999
80         "Thunderbolt Dock Audio Module" 999
81         "USB Device 0x46d_0x821" 999
82         "USB Device 0x46d_0x992" 999
83         "WD15 Dock" 999
84         "WD19 Dock" 999
85         "ThinkPad USB-C Dock Gen2 USB Au" 999
86 }
87
88 # Second iec958 device number, if any.
89 USB-Audio.pcm.iec958_2_device {
90         "PHIREE U2" 1  # 0 = PCM S/PDIF, 1 = non-PCM S/PDIF
91         "PHIREE U2SX" 1  # 0 = PCM S/PDIF, 1 = non-PCM S/PDIF
92 }
93
94
95 # If a device requires non-standard definitions for front, default, surround40,
96 # surround51, surround71 or iec958, they can be defined here.
97
98 # M-Audio AudioPhile USB:
99 # device 0: analog output, digital input
100 # device 1: digital output, analog input
101 USB-Audio."AudioPhile".pcm.default "cards.USB-Audio.Audiophile USB (tm).pcm.default"
102 USB-Audio."Audiophile USB (tm)".pcm.default {
103         @args [ CARD ]
104         @args.CARD { type string }
105         type asym
106         playback.pcm {
107                 type plug
108                 slave.pcm {
109                         type hw
110                         card $CARD
111                         device 0
112                 }
113         }
114         capture.pcm {
115                 type plug
116                 slave.pcm {
117                         @func concat
118                         strings [ "dsnoop:DEV=1,CARD=" $CARD ]
119                 }
120         }
121 }
122 USB-Audio."AudioPhile".pcm.iec958 "cards.USB-Audio.Audiophile USB (tm).pcm.iec958"
123 USB-Audio."Audiophile USB (tm)".pcm.iec958 {
124         @args [ CARD AES0 AES1 AES2 AES3 ]
125         @args.CARD { type string }
126         @args.AES0 { type integer }
127         @args.AES1 { type integer }
128         @args.AES2 { type integer }
129         @args.AES3 { type integer }
130         type asym
131         playback.pcm {
132                 type hw
133                 card $CARD
134                 device 1
135         }
136         capture.pcm {
137                 type hw
138                 card $CARD
139                 device 0
140         }
141 }
142
143 # For this card we can (and must to get IEC61937) set AES bits
144 USB-Audio."MicroII".pcm.iec958 "cards.USB-Audio.Audio Advantage MicroII.pcm.iec958"
145 USB-Audio."Audio Advantage MicroII".pcm.iec958 {
146         @args [ CARD AES0 AES1 AES2 AES3 ]
147         @args.CARD { type string }
148         @args.AES0 { type integer }
149         @args.AES1 { type integer }
150         @args.AES2 { type integer }
151         @args.AES3 { type integer }
152
153         type hooks
154         slave.pcm {
155                 type hw
156                 card $CARD
157         }
158
159         hooks.0 {
160                 type ctl_elems
161                 hook_args [
162                         {
163                                 interface PCM
164                                 name "IEC958 Playback Default"
165                                 preserve true
166                                 optional true
167                                 value [ $AES0 $AES1 $AES2 $AES3 ]
168                         }
169                         {
170                                 name "IEC958 Playback Switch"
171                                 lock true
172                                 preserve true
173                                 value 1
174                         }
175                 ]
176         }
177 }
178
179 ################################################################################
180
181 <confdir:pcm/front.conf>
182
183 USB-Audio.pcm.front.0 {
184         @args [ CARD ]
185         @args.CARD { type string }
186         @func refer
187         name {
188                 @func concat
189                 strings [
190                         "cards.USB-Audio."
191                         { @func card_name card $CARD }
192                         ".pcm.front:CARD=" $CARD
193                 ]
194         }
195         default {
196                 # We could use softvol, but the driver might have guessed a
197                 # wrong name for the real volume control.
198                 type hw
199                 card $CARD
200                 device 0
201         }
202 }
203
204 USB-Audio.pcm.default {
205         @args [ CARD ]
206         @args.CARD { type string }
207         @func refer
208         name {
209                 @func concat
210                 strings [
211                         "cards.USB-Audio."
212                         { @func card_name card $CARD }
213                         ".pcm.default:CARD=" $CARD
214                 ]
215         }
216         default {
217                 type asym
218                 playback.pcm {
219                         type plug
220                         slave.pcm {
221                                 @func refer
222                                 name {
223                                         @func concat
224                                         strings [
225                                                 "cards.USB-Audio.pcm.default_playback_dmix_"
226                                                 {
227                                                         @func refer
228                                                         name {
229                                                                 @func concat
230                                                                 strings [
231                                                                         "cards.USB-Audio.pcm.use_dmix."
232                                                                         { @func card_name card $CARD }
233                                                                 ]
234                                                         }
235                                                         default yes
236                                                 }
237                                                 ":CARD=" $CARD
238                                         ]
239                                 }
240                         }
241                 }
242                 capture.pcm {
243                         type plug
244                         slave.pcm {
245                                 @func concat
246                                 strings [ "dsnoop:" $CARD ]
247                         }
248                 }
249         }
250 }
251
252 USB-Audio.pcm.default_playback_dmix_yes {
253         @args [ CARD ]
254         @args.CARD { type string }
255         @func concat
256         strings [ "dmix:" $CARD ]
257 }
258
259 USB-Audio.pcm.default_playback_dmix_no {
260         @args [ CARD ]
261         @args.CARD { type string }
262         type hw
263         card $CARD
264         device 0
265 }
266
267 <confdir:pcm/surround40.conf>
268
269 USB-Audio.pcm.surround40.0 {
270         @args [ CARD ]
271         @args.CARD { type string }
272         @func refer
273         name {
274                 @func concat
275                 strings [
276                         "cards.USB-Audio."
277                         { @func card_name card $CARD }
278                         ".pcm.surround40:CARD=" $CARD
279                 ]
280         }
281         default {
282                 @func refer
283                 name {
284                         @func concat
285                         strings [
286                                 "cards.USB-Audio.pcm.surround40_"
287                                 {
288                                         @func refer
289                                         name {
290                                                 @func concat
291                                                 strings [
292                                                         "cards.USB-Audio.pcm.surround40_type."
293                                                         { @func card_name card $CARD }
294                                                 ]
295                                         }
296                                         default default
297                                 }
298                                 ":CARD=" $CARD
299                         ]
300                 }
301         }
302 }
303
304 USB-Audio.pcm.surround40_default {
305         @args [ CARD ]
306         @args.CARD { type string }
307         type hw
308         card $CARD
309         device 0
310 }
311
312 USB-Audio.pcm.surround40_six_channels {
313         @args [ CARD ]
314         @args.CARD { type string }
315         type route
316         ttable.0.0 1
317         ttable.1.1 1
318         ttable.2.4 1
319         ttable.3.5 1
320         slave {
321                 pcm {
322                         type hw
323                         card $CARD
324                         device 0
325                 }
326                 channels 6
327         }
328 }
329
330 USB-Audio.pcm.surround40_two_stereo_devices {
331         @args [ CARD ]
332         @args.CARD { type string }
333         type route
334         ttable.0.0 1
335         ttable.1.1 1
336         ttable.2.2 1
337         ttable.3.3 1
338         slave.pcm {
339                 type multi
340                 slaves {
341                         a {
342                                 pcm {
343                                         type hw
344                                         card $CARD
345                                         device 0
346                                 }
347                                 channels 2
348                         }
349                         b {
350                                 pcm {
351                                         type hw
352                                         card $CARD
353                                         device 1
354                                 }
355                                 channels 2
356                         }
357                 }
358                 bindings [
359                         { slave a channel 0 }
360                         { slave a channel 1 }
361                         { slave b channel 0 }
362                         { slave b channel 1 }
363                 ]
364         }
365 }
366
367 <confdir:pcm/surround21.conf>
368 <confdir:pcm/surround41.conf>
369 <confdir:pcm/surround50.conf>
370 <confdir:pcm/surround51.conf>
371
372 USB-Audio.pcm.surround51.0 {
373         @args [ CARD ]
374         @args.CARD { type string }
375         @func refer
376         name {
377                 @func concat
378                 strings [
379                         "cards.USB-Audio."
380                         { @func card_name card $CARD }
381                         ".pcm.surround51:CARD=" $CARD
382                 ]
383         }
384         default {
385                 type route
386                 ttable.0.0 1
387                 ttable.1.1 1
388                 ttable.2.4 1
389                 ttable.3.5 1
390                 ttable.4.2 1
391                 ttable.5.3 1
392                 slave {
393                         pcm {
394                                 type hw
395                                 card $CARD
396                                 device 0
397                         }
398                         channels 6
399                 }
400         }
401 }
402
403 <confdir:pcm/surround71.conf>
404
405 USB-Audio.pcm.surround71.0 {
406         @args [ CARD ]
407         @args.CARD { type string }
408         @func refer
409         name {
410                 @func concat
411                 strings [
412                         "cards.USB-Audio."
413                         { @func card_name card $CARD }
414                         ".pcm.surround71:CARD=" $CARD
415                 ]
416         }
417         default {
418                 type route
419                 ttable.0.0 1
420                 ttable.1.1 1
421                 ttable.2.4 1
422                 ttable.3.5 1
423                 ttable.4.2 1
424                 ttable.5.3 1
425                 ttable.6.6 1
426                 ttable.7.7 1
427                 slave {
428                         pcm {
429                                 type hw
430                                 card $CARD
431                                 device 0
432                         }
433                         channels 8
434                 }
435         }
436 }
437
438 <confdir:pcm/iec958.conf>
439
440 USB-Audio.pcm.iec958.0 {
441         @args [ CARD AES0 AES1 AES2 AES3 ]
442         @args.CARD { type string }
443         @args.AES0 { type integer }
444         @args.AES1 { type integer }
445         @args.AES2 { type integer }
446         @args.AES3 { type integer }
447         @func refer
448         name {
449                 @func concat
450                 strings [
451                         "cards.USB-Audio."
452                         { @func card_name card $CARD }
453                         ".pcm.iec958:CARD=" $CARD
454                         ",AES0=" $AES0 ",AES1=" $AES1 ",AES2=" $AES2 ",AES3=" $AES3
455                 ]
456         }
457         default {
458                 # FIXME: we cannot set the AES parameters
459                 type hw
460                 card $CARD
461                 device {
462                         @func refer
463                         name {
464                                 @func concat
465                                 strings [
466                                         "cards.USB-Audio.pcm.iec958_device."
467                                         { @func card_name card $CARD }
468                                 ]
469                         }
470                         default 0
471                 }
472         }
473 }
474
475 USB-Audio.pcm.iec958.1 {
476         @args [ CARD AES0 AES1 AES2 AES3 ]
477         @args.CARD { type string }
478         @args.AES0 { type integer }
479         @args.AES1 { type integer }
480         @args.AES2 { type integer }
481         @args.AES3 { type integer }
482         @func refer
483         name {
484                 @func concat
485                 strings [
486                         "cards.USB-Audio."
487                         { @func card_name card $CARD }
488                         ".pcm.iec958_2:CARD=" $CARD
489                         ",AES0=" $AES0 ",AES1=" $AES1 ",AES2=" $AES2 ",AES3=" $AES3
490                 ]
491         }
492         default {
493                 # FIXME: we cannot set the AES parameters
494                 type hw
495                 card $CARD
496                 device {
497                         @func refer
498                         name {
499                                 @func concat
500                                 strings [
501                                         "cards.USB-Audio.pcm.iec958_2_device."
502                                         { @func card_name card $CARD }
503                                 ]
504                         }
505                         default 999
506                 }
507         }
508 }
509
510 # vim: ft=alsaconf