# # 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 . # 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 } } ################################################################################ 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 } 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 } ] } } 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 } } } 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 } } } 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