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 "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. 39USB-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. 89USB-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 101USB-Audio."AudioPhile".pcm.default "cards.USB-Audio.Audiophile USB (tm).pcm.default" 102USB-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} 122USB-Audio."AudioPhile".pcm.iec958 "cards.USB-Audio.Audiophile USB (tm).pcm.iec958" 123USB-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 144USB-Audio."MicroII".pcm.iec958 "cards.USB-Audio.Audio Advantage MicroII.pcm.iec958" 145USB-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 183USB-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 204USB-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 252USB-Audio.pcm.default_playback_dmix_yes { 253 @args [ CARD ] 254 @args.CARD { type string } 255 @func concat 256 strings [ "dmix:" $CARD ] 257} 258 259USB-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 269USB-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 304USB-Audio.pcm.surround40_default { 305 @args [ CARD ] 306 @args.CARD { type string } 307 type hw 308 card $CARD 309 device 0 310} 311 312USB-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 330USB-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 372USB-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 405USB-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 440USB-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 475USB-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 511