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