|  | # | 
|  | #  USB-Audio.conf - configuration for USB Audio devices | 
|  | # | 
|  | # | 
|  | #  DO NO EDIT; this is an internal ALSA file. | 
|  | #  If you want to add your own definitions, put them into /etc/asound.conf or | 
|  | #  ~/.asoundrc, with "cards." before the "USB-Audio", e.g.: | 
|  | # | 
|  | #  cards.USB-Audio.pcm.use_dmix."NoiseBlaster 3000" no | 
|  | # | 
|  | #  If your device requires such a definition to work correctly, please report it | 
|  | #  to <alsa-devel@alsa-project.org>. | 
|  |  | 
|  |  | 
|  | # If a device has sample formats not supported by dmix, dmix can be disabled | 
|  | # here. | 
|  | USB-Audio.pcm.use_dmix { | 
|  | "AudioPhile" no    # uses big-endian 24-bit samples | 
|  | "Audiophile USB (tm)" no | 
|  | } | 
|  |  | 
|  | # If a device does not have a four-channel mode for the front/rear outputs, | 
|  | # other modes can be selected here. | 
|  | # six_channels       - for devices that route the last two of the four channels | 
|  | #                      to the center/LFE outputs | 
|  | # two_stereo_devices - for devices that have two stereo audio interfaces | 
|  | USB-Audio.pcm.surround40_type { | 
|  | "AudioPhile" two_stereo_devices | 
|  | "Audiophile USB (tm)" two_stereo_devices | 
|  | "OmniStudio" two_stereo_devices | 
|  | "Quattro" two_stereo_devices | 
|  | "SB Audigy 2 NX" six_channels | 
|  | } | 
|  |  | 
|  | # If a device does not use the first PCM device for digital data, the device | 
|  | # number for the iec958 device can be changed here. | 
|  | USB-Audio.pcm.iec958_device { | 
|  | # "NoiseBlaster 3000" 42 | 
|  | } | 
|  |  | 
|  |  | 
|  | # If a device requires non-standard definitions for front, surround40, | 
|  | # surround51, surround71 or iec958, they can be defined here. | 
|  |  | 
|  | # M-Audio AudioPhile USB: | 
|  | # device 0: analog output, digital input | 
|  | # device 1: digital output, analog input | 
|  | USB-Audio."AudioPhile".pcm.default "cards.USB-Audio.Audiophile USB (tm).pcm.default" | 
|  | USB-Audio."Audiophile USB (tm)".pcm.default { | 
|  | @args [ CARD ] | 
|  | @args.CARD { type string } | 
|  | type asym | 
|  | playback.pcm { | 
|  | type plug | 
|  | slave.pcm { | 
|  | type hw | 
|  | card $CARD | 
|  | device 0 | 
|  | } | 
|  | } | 
|  | capture.pcm { | 
|  | type plug | 
|  | slave.pcm { | 
|  | @func concat | 
|  | strings [ "dsnoop:DEVICE=1,CARD=" $CARD ] | 
|  | } | 
|  | } | 
|  | } | 
|  | USB-Audio."AudioPhile".pcm.iec958 "cards.USB-Audio.Audiophile USB (tm).pcm.iec958" | 
|  | USB-Audio."Audiophile USB (tm)".pcm.iec958 { | 
|  | @args [ CARD AES0 AES1 AES2 AES3 ] | 
|  | @args.CARD { type string } | 
|  | @args.AES0 { type integer } | 
|  | @args.AES1 { type integer } | 
|  | @args.AES2 { type integer } | 
|  | @args.AES3 { type integer } | 
|  | type asym | 
|  | playback.pcm { | 
|  | type hw | 
|  | card $CARD | 
|  | device 1 | 
|  | } | 
|  | capture.pcm { | 
|  | type hw | 
|  | card $CARD | 
|  | device 0 | 
|  | } | 
|  | } | 
|  |  | 
|  |  | 
|  | ################################################################################ | 
|  |  | 
|  | <confdir:pcm/front.conf> | 
|  |  | 
|  | USB-Audio.pcm.front.0 { | 
|  | @args [ CARD ] | 
|  | @args.CARD { type string } | 
|  | @func refer | 
|  | name { | 
|  | @func concat | 
|  | strings [ | 
|  | "cards.USB-Audio." | 
|  | { @func card_name card $CARD } | 
|  | ".pcm.front:CARD=" $CARD | 
|  | ] | 
|  | } | 
|  | default { | 
|  | # We could use softvol, but the driver might have guessed a | 
|  | # wrong name for the real volume control. | 
|  | type hw | 
|  | card $CARD | 
|  | device 0 | 
|  | } | 
|  | } | 
|  |  | 
|  | USB-Audio.pcm.default { | 
|  | @args [ CARD ] | 
|  | @args.CARD { type string } | 
|  | type asym | 
|  | playback.pcm { | 
|  | type plug | 
|  | slave.pcm { | 
|  | @func refer | 
|  | name { | 
|  | @func concat | 
|  | strings [ | 
|  | "cards.USB-Audio.pcm.default_playback_dmix_" | 
|  | { | 
|  | @func refer | 
|  | name { | 
|  | @func concat | 
|  | strings [ | 
|  | "cards.USB-Audio.pcm.use_dmix." | 
|  | { @func card_name card $CARD } | 
|  | ] | 
|  | } | 
|  | default yes | 
|  | } | 
|  | ":CARD=" $CARD | 
|  | ] | 
|  | } | 
|  | } | 
|  | } | 
|  | capture.pcm { | 
|  | type plug | 
|  | slave.pcm { | 
|  | @func concat | 
|  | strings [ "dsnoop:" $CARD ] | 
|  | } | 
|  | } | 
|  | } | 
|  |  | 
|  | USB-Audio.pcm.default_playback_dmix_yes { | 
|  | @args [ CARD ] | 
|  | @args.CARD { type string } | 
|  | @func concat | 
|  | strings [ "dmix:" $CARD ] | 
|  | } | 
|  |  | 
|  | USB-Audio.pcm.default_playback_dmix_no { | 
|  | @args [ CARD ] | 
|  | @args.CARD { type string } | 
|  | type hw | 
|  | card $CARD | 
|  | device 0 | 
|  | } | 
|  |  | 
|  | <confdir:pcm/surround40.conf> | 
|  |  | 
|  | USB-Audio.pcm.surround40.0 { | 
|  | @args [ CARD ] | 
|  | @args.CARD { type string } | 
|  | @func refer | 
|  | name { | 
|  | @func concat | 
|  | strings [ | 
|  | "cards.USB-Audio." | 
|  | { @func card_name card $CARD } | 
|  | ".pcm.surround40:CARD=" $CARD | 
|  | ] | 
|  | } | 
|  | default { | 
|  | @func refer | 
|  | name { | 
|  | @func concat | 
|  | strings [ | 
|  | "cards.USB-Audio.pcm.surround40_" | 
|  | { | 
|  | @func refer | 
|  | name { | 
|  | @func concat | 
|  | strings [ | 
|  | "cards.USB-Audio.pcm.surround40_type." | 
|  | { @func card_name card $CARD } | 
|  | ] | 
|  | } | 
|  | default default | 
|  | } | 
|  | ":CARD=" $CARD | 
|  | ] | 
|  | } | 
|  | } | 
|  | } | 
|  |  | 
|  | USB-Audio.pcm.surround40_default { | 
|  | @args [ CARD ] | 
|  | @args.CARD { type string } | 
|  | type hw | 
|  | card $CARD | 
|  | device 0 | 
|  | } | 
|  |  | 
|  | USB-Audio.pcm.surround40_six_channels { | 
|  | @args [ CARD ] | 
|  | @args.CARD { type string } | 
|  | type route | 
|  | ttable.0.0 1 | 
|  | ttable.1.1 1 | 
|  | ttable.2.4 1 | 
|  | ttable.3.5 1 | 
|  | slave { | 
|  | pcm { | 
|  | type hw | 
|  | card $CARD | 
|  | device 0 | 
|  | } | 
|  | channels 6 | 
|  | } | 
|  | } | 
|  |  | 
|  | USB-Audio.pcm.surround40_two_stereo_devices { | 
|  | @args [ CARD ] | 
|  | @args.CARD { type string } | 
|  | type route | 
|  | ttable.0.0 1 | 
|  | ttable.1.1 1 | 
|  | ttable.2.2 1 | 
|  | ttable.3.3 1 | 
|  | slave.pcm { | 
|  | type multi | 
|  | slaves { | 
|  | a { | 
|  | pcm { | 
|  | type hw | 
|  | card $CARD | 
|  | device 0 | 
|  | } | 
|  | channels 2 | 
|  | } | 
|  | b { | 
|  | pcm { | 
|  | type hw | 
|  | card $CARD | 
|  | device 1 | 
|  | } | 
|  | channels 2 | 
|  | } | 
|  | } | 
|  | bindings [ | 
|  | { slave a channel 0 } | 
|  | { slave a channel 1 } | 
|  | { slave b channel 0 } | 
|  | { slave b channel 1 } | 
|  | ] | 
|  | } | 
|  | } | 
|  |  | 
|  | <confdir:pcm/surround41.conf> | 
|  | <confdir:pcm/surround50.conf> | 
|  | <confdir:pcm/surround51.conf> | 
|  |  | 
|  | USB-Audio.pcm.surround51.0 { | 
|  | @args [ CARD ] | 
|  | @args.CARD { type string } | 
|  | @func refer | 
|  | name { | 
|  | @func concat | 
|  | strings [ | 
|  | "cards.USB-Audio." | 
|  | { @func card_name card $CARD } | 
|  | ".pcm.surround51:CARD=" $CARD | 
|  | ] | 
|  | } | 
|  | default { | 
|  | type route | 
|  | ttable.0.0 1 | 
|  | ttable.1.1 1 | 
|  | ttable.2.4 1 | 
|  | ttable.3.5 1 | 
|  | ttable.4.2 1 | 
|  | ttable.5.3 1 | 
|  | slave { | 
|  | pcm { | 
|  | type hw | 
|  | card $CARD | 
|  | device 0 | 
|  | } | 
|  | channels 6 | 
|  | } | 
|  | } | 
|  | } | 
|  |  | 
|  | <confdir:pcm/surround71.conf> | 
|  |  | 
|  | USB-Audio.pcm.surround71.0 { | 
|  | @args [ CARD ] | 
|  | @args.CARD { type string } | 
|  | @func refer | 
|  | name { | 
|  | @func concat | 
|  | strings [ | 
|  | "cards.USB-Audio." | 
|  | { @func card_name card $CARD } | 
|  | ".pcm.surround71:CARD=" $CARD | 
|  | ] | 
|  | } | 
|  | default { | 
|  | type route | 
|  | ttable.0.0 1 | 
|  | ttable.1.1 1 | 
|  | ttable.2.4 1 | 
|  | ttable.3.5 1 | 
|  | ttable.4.2 1 | 
|  | ttable.5.3 1 | 
|  | ttable.6.6 1 | 
|  | ttable.7.7 1 | 
|  | slave { | 
|  | pcm { | 
|  | type hw | 
|  | card $CARD | 
|  | device 0 | 
|  | } | 
|  | channels 8 | 
|  | } | 
|  | } | 
|  | } | 
|  |  | 
|  | <confdir:pcm/iec958.conf> | 
|  |  | 
|  | USB-Audio.pcm.iec958.0 { | 
|  | @args [ CARD AES0 AES1 AES2 AES3 ] | 
|  | @args.CARD { type string } | 
|  | @args.AES0 { type integer } | 
|  | @args.AES1 { type integer } | 
|  | @args.AES2 { type integer } | 
|  | @args.AES3 { type integer } | 
|  | @func refer | 
|  | name { | 
|  | @func concat | 
|  | strings [ | 
|  | "cards.USB-Audio." | 
|  | { @func card_name card $CARD } | 
|  | ".pcm.iec958:CARD=" $CARD | 
|  | ",AES0=" $AES0 ",AES1=" $AES1 ",AES2=" $AES2 ",AES3=" $AES3 | 
|  | ] | 
|  | } | 
|  | default { | 
|  | # FIXME: we cannot set the AES parameters | 
|  | type hw | 
|  | card $CARD | 
|  | device { | 
|  | @func refer | 
|  | name { | 
|  | @func concat | 
|  | strings [ | 
|  | "cards.USB-Audio.pcm.iec958_device." | 
|  | { @func card_name card $CARD } | 
|  | ] | 
|  | } | 
|  | default 0 | 
|  | } | 
|  | } | 
|  | } | 
|  |  | 
|  | # vim: ft=alsaconf |