jpayne@68: # jpayne@68: # USB-Audio.conf - configuration for USB Audio devices jpayne@68: # jpayne@68: # jpayne@68: # DO NO EDIT; this is an internal ALSA file. jpayne@68: # If you want to add your own definitions, put them into /etc/asound.conf or jpayne@68: # ~/.asoundrc, with "cards." before the "USB-Audio", e.g.: jpayne@68: # jpayne@68: # cards.USB-Audio.pcm.use_dmix."NoiseBlaster 3000" no jpayne@68: # jpayne@68: # If your device requires such a definition to work correctly, please report it jpayne@68: # to . jpayne@68: jpayne@68: jpayne@68: # If a device has sample formats not supported by dmix, dmix can be disabled jpayne@68: # here. jpayne@68: USB-Audio.pcm.use_dmix { jpayne@68: "AudioPhile" no # uses big-endian 24-bit samples jpayne@68: "Audiophile USB (tm)" no jpayne@68: } jpayne@68: jpayne@68: # If a device does not have a four-channel mode for the front/rear outputs, jpayne@68: # other modes can be selected here. jpayne@68: # six_channels - for devices that route the last two of the four channels jpayne@68: # to the center/LFE outputs jpayne@68: # two_stereo_devices - for devices that have two stereo audio interfaces jpayne@68: USB-Audio.pcm.surround40_type { jpayne@68: "AudioPhile" two_stereo_devices jpayne@68: "Audiophile USB (tm)" two_stereo_devices jpayne@68: "OmniStudio" two_stereo_devices jpayne@68: "Quattro" two_stereo_devices jpayne@68: "SB Audigy 2 NX" six_channels jpayne@68: "USB AudioSport Quattro (tm)" two_stereo_devices jpayne@68: } jpayne@68: jpayne@68: # If a device does not use the first PCM device for digital data, the device jpayne@68: # number for the iec958 device can be changed here. jpayne@68: USB-Audio.pcm.iec958_device { jpayne@68: # "NoiseBlaster 3000" 42 jpayne@68: "USB Sound Blaster HD" 1 jpayne@68: "Xonar U7" 1 jpayne@68: "ASUS XONAR U5" 1 jpayne@68: "XONAR U5" 1 jpayne@68: "XONAR SOUND CARD" 1 jpayne@68: jpayne@68: # The below don't have digital in/out, so prevent them from being opened. jpayne@68: "Andrea PureAudio USB-SA Headset" 999 jpayne@68: "Blue Snowball" 999 jpayne@68: "C-Media USB Headphone Set" 999 jpayne@68: "HP Digital Stereo Headset" 999 jpayne@68: "GN 9330" 999 jpayne@68: "Logitech Speaker Lapdesk N700" 999 jpayne@68: "Logitech G35 Headset" 999 jpayne@68: "Logitech USB Headset" 999 jpayne@68: "Logitech USB Headset H540" 999 jpayne@68: "Logitech Wireless Headset" 999 jpayne@68: "Plantronics GameCom 780" 999 jpayne@68: "Plantronics USB Headset" 999 jpayne@68: "Plantronics Wireless Audio" 999 jpayne@68: "SB WoW Headset" 999 jpayne@68: "Scarlett 2i2 USB" 999 jpayne@68: "Scarlett 2i4 USB" 999 jpayne@68: "Sennheiser USB headset" 999 jpayne@68: "SWTOR Gaming Headset by Razer" 999 jpayne@68: "Thunderbolt Dock Audio Headset" 999 jpayne@68: "Thunderbolt Dock Audio Module" 999 jpayne@68: "USB Device 0x46d_0x821" 999 jpayne@68: "USB Device 0x46d_0x992" 999 jpayne@68: "WD15 Dock" 999 jpayne@68: "WD19 Dock" 999 jpayne@68: } jpayne@68: jpayne@68: # Second iec958 device number, if any. jpayne@68: USB-Audio.pcm.iec958_2_device { jpayne@68: "PHIREE U2" 1 # 0 = PCM S/PDIF, 1 = non-PCM S/PDIF jpayne@68: "PHIREE U2SX" 1 # 0 = PCM S/PDIF, 1 = non-PCM S/PDIF jpayne@68: } jpayne@68: jpayne@68: jpayne@68: # If a device requires non-standard definitions for front, default, surround40, jpayne@68: # surround51, surround71 or iec958, they can be defined here. jpayne@68: jpayne@68: # M-Audio AudioPhile USB: jpayne@68: # device 0: analog output, digital input jpayne@68: # device 1: digital output, analog input jpayne@68: USB-Audio."AudioPhile".pcm.default "cards.USB-Audio.Audiophile USB (tm).pcm.default" jpayne@68: USB-Audio."Audiophile USB (tm)".pcm.default { jpayne@68: @args [ CARD ] jpayne@68: @args.CARD { type string } jpayne@68: type asym jpayne@68: playback.pcm { jpayne@68: type plug jpayne@68: slave.pcm { jpayne@68: type hw jpayne@68: card $CARD jpayne@68: device 0 jpayne@68: } jpayne@68: } jpayne@68: capture.pcm { jpayne@68: type plug jpayne@68: slave.pcm { jpayne@68: @func concat jpayne@68: strings [ "dsnoop:DEV=1,CARD=" $CARD ] jpayne@68: } jpayne@68: } jpayne@68: } jpayne@68: USB-Audio."AudioPhile".pcm.iec958 "cards.USB-Audio.Audiophile USB (tm).pcm.iec958" jpayne@68: USB-Audio."Audiophile USB (tm)".pcm.iec958 { jpayne@68: @args [ CARD AES0 AES1 AES2 AES3 ] jpayne@68: @args.CARD { type string } jpayne@68: @args.AES0 { type integer } jpayne@68: @args.AES1 { type integer } jpayne@68: @args.AES2 { type integer } jpayne@68: @args.AES3 { type integer } jpayne@68: type asym jpayne@68: playback.pcm { jpayne@68: type hw jpayne@68: card $CARD jpayne@68: device 1 jpayne@68: } jpayne@68: capture.pcm { jpayne@68: type hw jpayne@68: card $CARD jpayne@68: device 0 jpayne@68: } jpayne@68: } jpayne@68: jpayne@68: # For this card we can (and must to get IEC61937) set AES bits jpayne@68: USB-Audio."MicroII".pcm.iec958 "cards.USB-Audio.Audio Advantage MicroII.pcm.iec958" jpayne@68: USB-Audio."Audio Advantage MicroII".pcm.iec958 { jpayne@68: @args [ CARD AES0 AES1 AES2 AES3 ] jpayne@68: @args.CARD { type string } jpayne@68: @args.AES0 { type integer } jpayne@68: @args.AES1 { type integer } jpayne@68: @args.AES2 { type integer } jpayne@68: @args.AES3 { type integer } jpayne@68: jpayne@68: type hooks jpayne@68: slave.pcm { jpayne@68: type hw jpayne@68: card $CARD jpayne@68: } jpayne@68: jpayne@68: hooks.0 { jpayne@68: type ctl_elems jpayne@68: hook_args [ jpayne@68: { jpayne@68: interface PCM jpayne@68: name "IEC958 Playback Default" jpayne@68: preserve true jpayne@68: optional true jpayne@68: value [ $AES0 $AES1 $AES2 $AES3 ] jpayne@68: } jpayne@68: { jpayne@68: name "IEC958 Playback Switch" jpayne@68: lock true jpayne@68: preserve true jpayne@68: value 1 jpayne@68: } jpayne@68: ] jpayne@68: } jpayne@68: } jpayne@68: jpayne@68: ################################################################################ jpayne@68: jpayne@68: jpayne@68: jpayne@68: USB-Audio.pcm.front.0 { jpayne@68: @args [ CARD ] jpayne@68: @args.CARD { type string } jpayne@68: @func refer jpayne@68: name { jpayne@68: @func concat jpayne@68: strings [ jpayne@68: "cards.USB-Audio." jpayne@68: { @func card_name card $CARD } jpayne@68: ".pcm.front:CARD=" $CARD jpayne@68: ] jpayne@68: } jpayne@68: default { jpayne@68: # We could use softvol, but the driver might have guessed a jpayne@68: # wrong name for the real volume control. jpayne@68: type hw jpayne@68: card $CARD jpayne@68: device 0 jpayne@68: } jpayne@68: } jpayne@68: jpayne@68: USB-Audio.pcm.default { jpayne@68: @args [ CARD ] jpayne@68: @args.CARD { type string } jpayne@68: @func refer jpayne@68: name { jpayne@68: @func concat jpayne@68: strings [ jpayne@68: "cards.USB-Audio." jpayne@68: { @func card_name card $CARD } jpayne@68: ".pcm.default:CARD=" $CARD jpayne@68: ] jpayne@68: } jpayne@68: default { jpayne@68: type asym jpayne@68: playback.pcm { jpayne@68: type plug jpayne@68: slave.pcm { jpayne@68: @func refer jpayne@68: name { jpayne@68: @func concat jpayne@68: strings [ jpayne@68: "cards.USB-Audio.pcm.default_playback_dmix_" jpayne@68: { jpayne@68: @func refer jpayne@68: name { jpayne@68: @func concat jpayne@68: strings [ jpayne@68: "cards.USB-Audio.pcm.use_dmix." jpayne@68: { @func card_name card $CARD } jpayne@68: ] jpayne@68: } jpayne@68: default yes jpayne@68: } jpayne@68: ":CARD=" $CARD jpayne@68: ] jpayne@68: } jpayne@68: } jpayne@68: } jpayne@68: capture.pcm { jpayne@68: type plug jpayne@68: slave.pcm { jpayne@68: @func concat jpayne@68: strings [ "dsnoop:" $CARD ] jpayne@68: } jpayne@68: } jpayne@68: } jpayne@68: } jpayne@68: jpayne@68: USB-Audio.pcm.default_playback_dmix_yes { jpayne@68: @args [ CARD ] jpayne@68: @args.CARD { type string } jpayne@68: @func concat jpayne@68: strings [ "dmix:" $CARD ] jpayne@68: } jpayne@68: jpayne@68: USB-Audio.pcm.default_playback_dmix_no { jpayne@68: @args [ CARD ] jpayne@68: @args.CARD { type string } jpayne@68: type hw jpayne@68: card $CARD jpayne@68: device 0 jpayne@68: } jpayne@68: jpayne@68: jpayne@68: jpayne@68: USB-Audio.pcm.surround40.0 { jpayne@68: @args [ CARD ] jpayne@68: @args.CARD { type string } jpayne@68: @func refer jpayne@68: name { jpayne@68: @func concat jpayne@68: strings [ jpayne@68: "cards.USB-Audio." jpayne@68: { @func card_name card $CARD } jpayne@68: ".pcm.surround40:CARD=" $CARD jpayne@68: ] jpayne@68: } jpayne@68: default { jpayne@68: @func refer jpayne@68: name { jpayne@68: @func concat jpayne@68: strings [ jpayne@68: "cards.USB-Audio.pcm.surround40_" jpayne@68: { jpayne@68: @func refer jpayne@68: name { jpayne@68: @func concat jpayne@68: strings [ jpayne@68: "cards.USB-Audio.pcm.surround40_type." jpayne@68: { @func card_name card $CARD } jpayne@68: ] jpayne@68: } jpayne@68: default default jpayne@68: } jpayne@68: ":CARD=" $CARD jpayne@68: ] jpayne@68: } jpayne@68: } jpayne@68: } jpayne@68: jpayne@68: USB-Audio.pcm.surround40_default { jpayne@68: @args [ CARD ] jpayne@68: @args.CARD { type string } jpayne@68: type hw jpayne@68: card $CARD jpayne@68: device 0 jpayne@68: } jpayne@68: jpayne@68: USB-Audio.pcm.surround40_six_channels { jpayne@68: @args [ CARD ] jpayne@68: @args.CARD { type string } jpayne@68: type route jpayne@68: ttable.0.0 1 jpayne@68: ttable.1.1 1 jpayne@68: ttable.2.4 1 jpayne@68: ttable.3.5 1 jpayne@68: slave { jpayne@68: pcm { jpayne@68: type hw jpayne@68: card $CARD jpayne@68: device 0 jpayne@68: } jpayne@68: channels 6 jpayne@68: } jpayne@68: } jpayne@68: jpayne@68: USB-Audio.pcm.surround40_two_stereo_devices { jpayne@68: @args [ CARD ] jpayne@68: @args.CARD { type string } jpayne@68: type route jpayne@68: ttable.0.0 1 jpayne@68: ttable.1.1 1 jpayne@68: ttable.2.2 1 jpayne@68: ttable.3.3 1 jpayne@68: slave.pcm { jpayne@68: type multi jpayne@68: slaves { jpayne@68: a { jpayne@68: pcm { jpayne@68: type hw jpayne@68: card $CARD jpayne@68: device 0 jpayne@68: } jpayne@68: channels 2 jpayne@68: } jpayne@68: b { jpayne@68: pcm { jpayne@68: type hw jpayne@68: card $CARD jpayne@68: device 1 jpayne@68: } jpayne@68: channels 2 jpayne@68: } jpayne@68: } jpayne@68: bindings [ jpayne@68: { slave a channel 0 } jpayne@68: { slave a channel 1 } jpayne@68: { slave b channel 0 } jpayne@68: { slave b channel 1 } jpayne@68: ] jpayne@68: } jpayne@68: } jpayne@68: jpayne@68: jpayne@68: jpayne@68: jpayne@68: jpayne@68: jpayne@68: USB-Audio.pcm.surround51.0 { jpayne@68: @args [ CARD ] jpayne@68: @args.CARD { type string } jpayne@68: @func refer jpayne@68: name { jpayne@68: @func concat jpayne@68: strings [ jpayne@68: "cards.USB-Audio." jpayne@68: { @func card_name card $CARD } jpayne@68: ".pcm.surround51:CARD=" $CARD jpayne@68: ] jpayne@68: } jpayne@68: default { jpayne@68: type route jpayne@68: ttable.0.0 1 jpayne@68: ttable.1.1 1 jpayne@68: ttable.2.4 1 jpayne@68: ttable.3.5 1 jpayne@68: ttable.4.2 1 jpayne@68: ttable.5.3 1 jpayne@68: slave { jpayne@68: pcm { jpayne@68: type hw jpayne@68: card $CARD jpayne@68: device 0 jpayne@68: } jpayne@68: channels 6 jpayne@68: } jpayne@68: } jpayne@68: } jpayne@68: jpayne@68: jpayne@68: jpayne@68: USB-Audio.pcm.surround71.0 { jpayne@68: @args [ CARD ] jpayne@68: @args.CARD { type string } jpayne@68: @func refer jpayne@68: name { jpayne@68: @func concat jpayne@68: strings [ jpayne@68: "cards.USB-Audio." jpayne@68: { @func card_name card $CARD } jpayne@68: ".pcm.surround71:CARD=" $CARD jpayne@68: ] jpayne@68: } jpayne@68: default { jpayne@68: type route jpayne@68: ttable.0.0 1 jpayne@68: ttable.1.1 1 jpayne@68: ttable.2.4 1 jpayne@68: ttable.3.5 1 jpayne@68: ttable.4.2 1 jpayne@68: ttable.5.3 1 jpayne@68: ttable.6.6 1 jpayne@68: ttable.7.7 1 jpayne@68: slave { jpayne@68: pcm { jpayne@68: type hw jpayne@68: card $CARD jpayne@68: device 0 jpayne@68: } jpayne@68: channels 8 jpayne@68: } jpayne@68: } jpayne@68: } jpayne@68: jpayne@68: jpayne@68: jpayne@68: USB-Audio.pcm.iec958.0 { jpayne@68: @args [ CARD AES0 AES1 AES2 AES3 ] jpayne@68: @args.CARD { type string } jpayne@68: @args.AES0 { type integer } jpayne@68: @args.AES1 { type integer } jpayne@68: @args.AES2 { type integer } jpayne@68: @args.AES3 { type integer } jpayne@68: @func refer jpayne@68: name { jpayne@68: @func concat jpayne@68: strings [ jpayne@68: "cards.USB-Audio." jpayne@68: { @func card_name card $CARD } jpayne@68: ".pcm.iec958:CARD=" $CARD jpayne@68: ",AES0=" $AES0 ",AES1=" $AES1 ",AES2=" $AES2 ",AES3=" $AES3 jpayne@68: ] jpayne@68: } jpayne@68: default { jpayne@68: # FIXME: we cannot set the AES parameters jpayne@68: type hw jpayne@68: card $CARD jpayne@68: device { jpayne@68: @func refer jpayne@68: name { jpayne@68: @func concat jpayne@68: strings [ jpayne@68: "cards.USB-Audio.pcm.iec958_device." jpayne@68: { @func card_name card $CARD } jpayne@68: ] jpayne@68: } jpayne@68: default 0 jpayne@68: } jpayne@68: } jpayne@68: } jpayne@68: jpayne@68: USB-Audio.pcm.iec958.1 { jpayne@68: @args [ CARD AES0 AES1 AES2 AES3 ] jpayne@68: @args.CARD { type string } jpayne@68: @args.AES0 { type integer } jpayne@68: @args.AES1 { type integer } jpayne@68: @args.AES2 { type integer } jpayne@68: @args.AES3 { type integer } jpayne@68: @func refer jpayne@68: name { jpayne@68: @func concat jpayne@68: strings [ jpayne@68: "cards.USB-Audio." jpayne@68: { @func card_name card $CARD } jpayne@68: ".pcm.iec958_2:CARD=" $CARD jpayne@68: ",AES0=" $AES0 ",AES1=" $AES1 ",AES2=" $AES2 ",AES3=" $AES3 jpayne@68: ] jpayne@68: } jpayne@68: default { jpayne@68: # FIXME: we cannot set the AES parameters jpayne@68: type hw jpayne@68: card $CARD jpayne@68: device { jpayne@68: @func refer jpayne@68: name { jpayne@68: @func concat jpayne@68: strings [ jpayne@68: "cards.USB-Audio.pcm.iec958_2_device." jpayne@68: { @func card_name card $CARD } jpayne@68: ] jpayne@68: } jpayne@68: default 999 jpayne@68: } jpayne@68: } jpayne@68: } jpayne@68: jpayne@68: # vim: ft=alsaconf