======Hardware - Audio - Soundcards - Linux - ALSA====== [[http://alsa-project.org/|Advanced Linux Sound Architecture (ALSA) project homepage]] \\ [[https://alsa.opensrc.org/|Alsa Opensrc Org]] \\ =====Notes===== ===='aplay -l | grep card' output==== ^Card^Slot type^Chipset^Output^Linux distro/version^Remarks^ |Audiotrak Prodigy HD2|PCI|VIA Envy24|card 4: ICE1724 [ICEnsemble ICE1724], device 0: ICE1724 [ICE1724] \\ card 4: ICE1724 [ICEnsemble ICE1724], device 1: ICE1724 IEC958 [ICE1724 IEC958]|Slackware64 14.2|Card is recognised, but does not output sound. Only shows S/PDIF options in alsamixer. Setting jumper JP4 on the card to ON (or OFF) and creating /etc/modprobe.d/alsa-base.conf with 'options snd-ice1724 model=prodigyhd2' as suggested [[http://aulix.com/gyrocom-audiotrak-prodigy-hd2-advance-de-linux-alsa|here]] only changes the card name in aplay -l output and provides a Front volume control in alsamixer, but still no sound output. speaker-test -c2 -twav -Dhw:2,0 complains about: \\ Sample format not available for playback: Invalid argument \\ Setting of hwparams failed: Invalid argument.| |ASTRO Gaming USB MixAmp|USB| |card 7: MixAmp [ASTRO Gaming USB MixAmp], device 0: USB Audio [USB Audio]|Slackware 14.2 (tested with kernel 5.0.17)|Works out of the box. \\ \\ // Dolby Headphone button does nothing. //| |ASUS STRIX RAID DLX|PCIe| |card 4: DLX [STRIX RAID DLX], device 0: USB Audio [USB Audio] \\ card 4: DLX [STRIX RAID DLX], device 1: USB Audio [USB Audio #1] \\ card 4: DLX [STRIX RAID DLX], device 2: USB Audio [USB Audio #2]|Slackware64 14.2 (tested with kernel 5.0.20)|Works out of the box.| |ASUS Xonar D2X|PCIe|AV200|card 0: D2X [Xonar D2X], device 0: Multichannel [Multichannel] \\ card 0: D2X [Xonar D2X], device 1: Digital [Digital]|Slackware64 14.2| | |ASUS Xonar Essence ST|PCI|AV100|card 4: ST [Xonar ST], device 0: Multichannel [Multichannel] \\ card 4: ST [Xonar ST], device 1: Digital [Digital]|Slackware64 14.2| | |Asus Xonar Essence STX|PCIe|AV100|card 1: STX [Xonar STX], device 0: Multichannel [Multichannel] \\ card 1: STX [Xonar STX], device 1: Digital [Digital]|Slackware64 14.2| | |Avid Mbox (3) Mini|USB| |card 11: Mini [Avid Mbox Mini], device 0: USB Audio [USB Audio]|Slackware 14.2 (tested with kernel 5.0.20)|Works out of the box. \\ Supported formats: \\ S16_LE \\ S24_3LE \\ \\ // On the Mini: Be sure to turn the Mix dial all the way up (clockwise) and then set the headphone/speaker volume to the desired level to get sound on headphones or speakers (speakers not tested). //| |Behringer UCA200|USB|Coolaudio V2902 (DAC)|card 7: CODEC [USB Audio CODEC], device 0: USB Audio [USB Audio]|Slackware64 14.2| | |Behringer UCA202|USB|PCM2902C (DAC)|card 7: CODEC [USB AUDIO CODEC], device 0: USB Audio [USB Audio]|Slackware64 14.2| | |Club3D Theatron Agrippa|PCI|CMI8770|card 3: CMI8762 [C-Media CMI8762], device 0: CMI8738-MC8 [C-Media PCI DAC/ADC] \\ card 3: CMI8762 [C-Media CMI8762], device 1: CMI8738-MC8 [C-Media PCI 2nd DAC] \\ card 3: CMI8762 [C-Media CMI8762], device 2: CMI8738-MC8 [C-Media PCI IEC958]|Slackware64 14.2| | |Creative Sound Blaster EVO ZxR|USB, Bluetooth|SBAxx1|card 9: ZxR [Sound Blaster EVO ZxR], device 0: USB Audio [USB Audio]|Slackware64-current (14.2+) (tested with kernel 5.3.3)|Only USB connection was tested. Volume control wheel on headphone does not work.| |Creative Sound Blaster Recon3D|USB|SoundCore3D|card 5: Recon3D [Sound Blaster Recon3D], device 0: USB Audio [USB Audio]|Slackware64 14.2|SBX/THX settings not available unless you configured them on a Windows system and saved the profile to the Recon3D USB. Then you can enable/disable them with the THX TruStudio Pro button on the Recon3D USB.| |Creative Sound Blaster Tactic3D Alpha|USB| |card 10: Alpha [Sound Blaster Tactic(3D) Alpha], device 0: USB Audio [USB Audio]|Slackware64-current (14.2+) (tested with kernel 5.4.16)| | |Creative Sound Blaster Tactic3D Rage USB|USB| |card 4: USB [SB Tactic3D Rage USB], device 0: USB Audio [USB Audio]|Slackware 14.2 (tested with kernel 5.2.9)| | |Creative Sound Blaster X-Fi|PCI/PCIe|EMU20k1 \\ EMU20k2|card 2: XFi [Creative X-Fi], device 0: ctxfi [Front/WaveIn] \\ card 2: XFi [Creative X-Fi], device 1: ctxfi [Surround] \\ card 2: XFi [Creative X-Fi], device 2: ctxfi [Center/LFE] \\ card 2: XFi [Creative X-Fi], device 3: ctxfi [Side] \\ card 2: XFi [Creative X-Fi], device 4: ctxfi [IEC958 Non-audio]|Slackware64 14.2| | |Creative Sound Blaster Z|PCIe|SoundCore3D|card 2: Creative [HDA Creative], device 0: CA0132 Analog [CA0132 Analog] \\ card 2: Creative [HDA Creative], device 1: CA0132 Digital [CA0132 Digital]|Slackware64 (tested with kernel 5.0.7)|Requires at least kernel 4.18 as Z drivers weren't available in older kernels. All SBX Pro functionality is available via alsamixer. See also:[[https://www.reddit.com/r/SoundBlasterOfficial/comments/9mm5ad/sound_blaster_r3dr3dizzxrae5_linux_driver/|Reddit - r/SoundBlasterOfficial - Sound Blaster R3D/R3Di/Z/ZxR/AE-5 Linux Driver]].| |Creative Sound Blaster ZxR (with DBpro)|PCIe|SoundCore3D|card 0: Creative_1 [HDA Creative], device 0: CA0132 Analog [CA0132 Analog] \\ card 0: Creative_1 [HDA Creative], device 1: CA0132 Digital [CA0132 Digital]|Slackware64 (tested with kernel 5.0.7)|Requires at least kernel 4.18 as ZxR drivers weren't available in older kernels. All SBX Pro functionality is available via alsamixer. See also:[[https://www.reddit.com/r/SoundBlasterOfficial/comments/9mm5ad/sound_blaster_r3dr3dizzxrae5_linux_driver/|Reddit - r/SoundBlasterOfficial - Sound Blaster R3D/R3Di/Z/ZxR/AE-5 Linux Driver]].| |Creative Sound BlasterX G5|USB|SBAxx1|card 9: G5 [Sound BlasterX G5], device 0: USB Audio [USB Audio]|Slackware64-current (14.2+) (tested with kernel 5.3.6)|Volume control wheel does not work.| |Digidesign MBOX 2 Mini \\ Digidesign MBOX 2 Micro|USB| |card 10: M2 [Mbox 2], device 0: USB Audio [USB Audio]|Slackware64 14.2 (tested with kernel 5.0.11)|The MBOX 2 only supports format S24_3BE. See [[hardware:audio:soundcards:digidesign:mbox2mini#linux|Hardware - Audio - Sound cards - Digidesign - MBOX 2 Mini - Linux]] for details and working ~/.asoundrc sample. \\ \\ // On the Mini: Be sure to turn the Mix dial all the way up (clockwise) and then set the headphone/speaker volume to the desired level to get sound on headphones or speakers (speakers not tested). //| |HyperX Amp|USB| |card 5: Amp [HyperX Amp], device 0: USB Audio [USB Audio] \\ card 5: Amp [HyperX Amp], device 1: USB Audio [USB Audio #1]|Slackware64 14.2 (tested with kernel 5.0.7)| | |HyperX Cloud II Advanced Audio Control Box|USB| |card 6: Sound [HyperX Virtual Surround Sound], device 0: USB Audio [USB Audio]|Slackware64 14.2| | |M-Audio Audiophile 192|PCI|Via Envy24 (ICE1724)|card 3: Audiophile192 [M Audio Audiophile192], device 0: ICE1724 [ICE1724] \\ card 3: Audiophile192 [M Audio Audiophile192], device 1: ICE1724 IEC958 [ICE1724 IEC958]|Slackware64 14.2|Card is recognised, but does not output sound via xmms if using ALSA output plugin to hw:X.0 device. Shows PCM volume control and S/PDIF options in alsamixer. speaker-test -c2 -twav -Dhw:2,0 complains about: \\ Sample format not available for playback: Invalid argument \\ Setting of hwparams failed: Invalid argument. \\ It does work in Audacious with ALSA output plugin set to PCM device: sysdefault:CARC=Audiophile192 (...).| |M-Audio Fast Track|USB| |card 13: Track [Fast Track], device 0: USB Audio [USB Audio]|Slackware64 14.2 (tested with kernel 5.1.17)|// Both the version with the 3 volume dials on top and the silver-grey version with buttons on the front. // | |Sennheiser GSX 1200 PRO|USB| |card 4: Audio [GSX 1200 Pro Main Audio], device 0: USB Audio [USB Audio] \\ card 4: Audio [GSX 1200 Pro Main Audio], device 1: USB Audio [USB Audio #1]|Slackware64 14.2|Works. See [[ hardware:audio:soundcards:sennheiser:gsx|Sennheiser GSX]] for .asoundrc settings.| |Sweex 5.1|PCI|CMI8768|card 2: CMI8768 [C-Media CMI8768], device 0: CMI8738-MC8 [C-Media PCI DAC/ADC] \\ card 2: CMI8768 [C-Media CMI8768], device 1: CMI8738-MC8 [C-Media PCI 2nd DAC] \\ card 2: CMI8768 [C-Media CMI8768], device 2: CMI8738-MC8 [C-Media PCI IEC958]|Slackware64 14.2| | |Tascam US-100|USB| |card 8: CODEC [USB Audio CODEC], device 0: USB Audio [USB Audio]|Slackware 14.2 (tested with kernel 5.2.9)|// Same chipset as Behringer UCA200? // | |Terratec Aureon Xfire8.0 HD|USB| |card 5: HD [AUREON XFIRE8.0 HD], device 0: USB Audio [USB Audio] \\ card 5: HD [AUREON XFIRE8.0 HD], device 1: USB Audio [USB Audio #1] \\ card 5: HD [AUREON XFIRE8.0 HD], device 2: USB Audio [USB Audio #2]|Slackware64 14.2|Volume control knob on the unit does not work.| |Turtlebeach Ear Force Stealth 450|USB| |card 5: E450 [Ear Force Stealth 450], device 0: USB Audio [USB Audio]|Slackware64 14.2 (tested with kernel 5.0.7)| | |Yamaha UW500|USB| |card 5: UW500 [YAMAHA UW500], device 0: USB Audio [USB Audio]|Slackware64-current (14.2+) (tested with kernel 5.4.28)| | ====Play from commandline and provide output device==== Using ffmpeg (for most audio formats): SDL_AUDIODRIVER="alsa" AUDIODEV="hw:0,0" ffplay -nodisp audiofile.flac Source:[[https://superuser.com/questions/763683/select-ffplay-audio-out-device|Super User - select ffplay audio out device]] Using mpg123 (for mp3's only): mpg123 -a hw:1,0 audiofile.mp3 ====Dump hardware parameters==== For example, to dump the hardware parameters for a Digidesign MBOX 2: arecord --dump-hw-params -D hw:M2,0 Recording WAVE 'stdin' : Unsigned 8 bit, Rate 8000 Hz, Mono HW Params of device "hw:M2,0": -------------------- ACCESS: MMAP_INTERLEAVED RW_INTERLEAVED FORMAT: S24_3BE SUBFORMAT: STD SAMPLE_BITS: 24 FRAME_BITS: 48 CHANNELS: 2 RATE: 48000 PERIOD_TIME: [1000 1820438) PERIOD_SIZE: [48 87381] PERIOD_BYTES: [288 524286] PERIODS: [2 1024] BUFFER_TIME: [2000 3640875] BUFFER_SIZE: [96 174762] BUFFER_BYTES: [576 1048572] TICK_TIME: ALL -------------------- arecord: set_params:1297: Sample format non available Available formats: - S24_3BE // Here you can see the MBOX2 only supports the S24_3BE (signed 24-bit 3bytes Big Endian) format. // Source:[[https://sourceforge.net/p/alsa/mailman/message/33820068/|SourceForge - ALSA - Mailing Lists - Re: [Alsa-user] arecord: begin_wave:2480: Wave doesn't support S24_3BE format]] \\ ====Midi==== Get a list of midi devices:aplaymidi -l Example output: Port Client name Port name 14:0 Midi Through Midi Through Port-0 20:0 USB Midi USB Midi MIDI 1 44:0 Mbox 2 Mbox 2 MIDI 1 48:0 Mbox 2 Mbox 2 MIDI 1 ====DOSbox==== To use the midi device named "USB Midi" on port 20:0 in above output in DOSbox, edit the [midi] part in your DOSbox config in ~/.dosbox/dosbox-VERSION.conf (in my case ~/.dosbox/dosbox-0.74-3.conf) to look like this: [midi] # mpu401: Type of MPU-401 to emulate. # Possible values: intelligent, uart, none. # mididevice: Device that will receive the MIDI data from MPU-401. # Possible values: default, win32, alsa, oss, coreaudio, coremidi, none. # midiconfig: Special configuration options for the device driver. This is usually the id of the device you wan t to use. # See the README/Manual for more details. mpu401=intelligent mididevice=default midiconfig=20:0 ====Test playback==== Show all soundcards that are recognised by ALSA: aplay -l | grep card Test playback on a specific card: speaker-test -c2 -twav -Dhw:Creative Test playback on a specific pcm or dmix device definied in a manually edited .asoundrc: speaker-test -c2 -twav -Ddmixsoundblasterz // This helps to track down vague error messages in a .asoundrc that sends sound output to multiple soundcards simultaneously. // =====Route 7.1 channels to 2-channel stereo soundcard===== For faking a 7.1 channel setup on a stereo soundcard. Save the below code to ~/.asoundrc and change the pcm.maudiomicrodac part to match your card (see 'aplay -l | grep card' output): pcm.!default { type asym playback.pcm "plug:stereo2quad" } pcm.dmixer { type dmix ipc_key 1024 slave { pcm "maudiomicrodac" period_time 0 period_size 1024 buffer_size 4096 rate 48000 } bindings { 0 0 1 1 2 0 3 1 4 0 5 1 6 0 7 1 } } pcm.stereo2quad { type route slave.pcm "dmixer" ttable.0.0 1 ttable.1.1 1 ttable.2.2 1 ttable.3.3 1 ttable.4.4 1 ttable.4.5 1 ttable.5.4 1 ttable.5.5 1 ttable.6.6 1 ttable.7.7 1 } pcm.maudiomicrodac { type hw card DAC device 0 channels 2 } ctl.dmixer { type hw card 0 } Sources: * [[https://bootlin.com/blog/audio-multi-channel-routing-and-mixing-using-alsalib/|bootlin - Audio multi-channel routing and mixing using alsalib]] * [[https://unix.stackexchange.com/questions/738631/splitting-the-outputs-of-a-7-1-usb-sound-card-into-4-distinct-stereo-pairs|unix stackexchange - Splitting the outputs of a 7.1 USB sound card into 4 distinct stereo pairs]] * [[https://askubuntu.com/questions/106186/how-to-split-7-1-soundcard-outputs-to-4-stereo-outs-with-alsa|askubuntu - How to split 7.1 soundcard outputs to 4 stereo outs with ALSA]] * [[https://www.alsa-project.org/main/index.php/Asoundrc|AlsaProject - Asoundrc]] * [[https://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html|AlsaProject - PCM (digital audio) plugins]] PCM plugins extends functionality and features of PCM devices. The plugins take care about various sample conversions, sample copying among channels and so on. =====Send output to multiple cards===== Send to both onboard and extra HDMI port (HDMI and HDMI_1): Save the below code to ~/.asoundrc pcm.!default { type asym playback.pcm "plug:stereo2quad" } pcm.multi { type multi; slaves.a.pcm dmixHDMI slaves.b.pcm dmixHDMI_1 slaves.a.channels 2; slaves.b.channels 2; bindings.0 { slave a; channel 0; } bindings.1 { slave a; channel 1; } bindings.2 { slave b; channel 0; } bindings.3 { slave b; channel 1; } } pcm.stereo2quad { type route slave.pcm "multi" ttable.0.0 1 ttable.1.1 1 ttable.0.2 1 ttable.1.3 1 } pcm.dmixHDMI { type dmix ipc_key 1024 slave { pcm "HDMI" period_time 0 period_size 1024 buffer_size 4096 rate 48000 } } pcm.dmixHDMI_1 { type dmix ipc_key 1025 slave { pcm "HDMI_1" period_time 0 period_size 1024 buffer_size 4096 rate 48000 } } pcm.HDMI { type hw card HDMI device 7 channels 2 } pcm.HDMI_1 { type hw card HDMI_1 device 7 channels 2 } ctl.dmixer { type hw card HDMI } Example of an ~/.asoundrc with even more soundcards, some of them commented out: pcm.!default { type asym playback.pcm "plug:stereo2quad" } #capture.pcm "plug:dsnoop:CODEC" pcm.multi { type multi; slaves.a.pcm dmixbehringeruca202 slaves.b.pcm dmixsennheisergsx1200pro slaves.c.pcm soundblasteraudigyrx slaves.d.pcm dmixsoundblasterz slaves.e.pcm dmixfasttrack_1 slaves.f.pcm dmixonboard slaves.g.pcm dmixtascamus100 slaves.h.pcm dmixsoundblasterrecon3dusb slaves.i.pcm dmixmbox3mini slaves.j.pcm dmixbehringeruca200 slaves.k.pcm soundblasterxfi slaves.l.pcm plugmbox2_1 slaves.m.pcm plugmbox2_2 slaves.a.channels 2; slaves.b.channels 2; slaves.c.channels 2; slaves.d.channels 2; slaves.e.channels 2; slaves.f.channels 2; slaves.g.channels 2; slaves.h.channels 2; slaves.i.channels 2; slaves.j.channels 2; slaves.k.channels 2; slaves.l.channels 2; slaves.m.channels 2; bindings.0 { slave a; channel 0; } bindings.1 { slave a; channel 1; } bindings.2 { slave b; channel 0; } bindings.3 { slave b; channel 1; } bindings.4 { slave c; channel 0; } bindings.5 { slave c; channel 1; } bindings.6 { slave d; channel 0; } bindings.7 { slave d; channel 1; } bindings.8 { slave e; channel 0; } bindings.9 { slave e; channel 1; } bindings.10 { slave f; channel 0; } bindings.11 { slave f; channel 1; } bindings.12 { slave g; channel 0; } bindings.13 { slave g; channel 1; } bindings.14 { slave h; channel 0; } bindings.15 { slave h; channel 1; } bindings.16 { slave i; channel 0; } bindings.17 { slave i; channel 1; } bindings.18 { slave j; channel 0; } bindings.19 { slave j; channel 1; } bindings.20 { slave k; channel 0; } bindings.21 { slave k; channel 1; } bindings.22 { slave l; channel 0; } bindings.23 { slave l; channel 1; } bindings.24 { slave m; channel 0; } bindings.25 { slave m; channel 1; } } pcm.stereo2quad { type route slave.pcm "multi" ttable.0.0 1 ttable.1.1 1 ttable.0.2 1 ttable.1.3 1 ttable.0.4 1 ttable.1.5 1 ttable.0.6 1 ttable.1.7 1 ttable.0.8 1 ttable.1.9 1 ttable.0.10 1 ttable.1.11 1 ttable.0.12 1 ttable.1.13 1 ttable.0.14 1 ttable.1.15 1 ttable.0.16 1 ttable.1.17 1 ttable.0.18 1 ttable.1.19 1 ttable.0.20 1 ttable.1.21 1 ttable.0.22 1 ttable.1.23 1 ttable.0.24 1 ttable.1.25 1 } pcm.plugmbox1 { type plug slave.pcm "dmixmbox1" } pcm.plugmbox2_1 { type plug slave.pcm "dmixmbox2_1" } pcm.plugmbox2_2 { type plug slave.pcm "dmixmbox2_2" } pcm.dmixbehringeruca202 { type dmix ipc_key 1024 slave { pcm "behringeruca202" period_time 0 period_size 1024 buffer_size 4096 rate 48000 } bindings { 0 0 1 1 } } pcm.dmixsennheisergsx1200pro { type dmix ipc_key 1025 slave { pcm "sennheisergsx1200pro" period_time 0 period_size 1024 buffer_size 4096 rate 48000 } bindings { 0 0 1 1 # 2 2 # 3 3 # 4 4 # 5 5 # 6 6 # 7 7 } } pcm.dmixhyperx { type dmix ipc_key 1026 slave { pcm "hyperx" period_time 0 period_size 1024 buffer_size 4096 rate 48000 } bindings { 0 0 1 1 } } pcm.dmixhyperxamp { type dmix ipc_key 1027 slave { pcm "hyperxamp" period_time 0 period_size 1024 buffer_size 4096 rate 48000 } bindings { 0 0 1 1 } } pcm.dmixonboard { type dmix ipc_key 1028 slave { pcm "onboard" period_time 0 period_size 1024 buffer_size 4096 rate 48000 } bindings { 0 0 1 1 } } pcm.dmixsoundblasterz { type dmix ipc_key 1029 slave { pcm "soundblasterz" period_time 0 period_size 1024 buffer_size 4096 rate 48000 } bindings { 0 0 1 1 } } pcm.dmixsoundblasterzxr { type dmix ipc_key 1030 slave { pcm "soundblasterzxr" period_time 0 period_size 1024 buffer_size 4096 rate 48000 } bindings { 0 0 1 1 } } pcm.dmixsoundblasterrecon3dusb { type dmix ipc_key 1031 slave { pcm "soundblasterrecon3dusb" period_time 0 period_size 1024 buffer_size 4096 rate 48000 } bindings { 0 0 1 1 } } #pcm.dmixturtlebeachearforce450 { # type dmix # ipc_key 1032 # slave { # pcm "turtlebeachearforce450" # period_time 0 # period_size 1024 # buffer_size 4096 # rate 48000 # } # bindings { # 0 0 # 1 1 # } #} #pcm.dmixmixamp { # type dmix # ipc_key 1033 # slave { # pcm "mixamp" # period_time 0 # period_size 1024 # buffer_size 4096 # rate 48000 # } # bindings { # 0 0 # 1 1 # } # #} pcm.dmixbehringeruca200 { type dmix ipc_key 1034 slave { pcm "behringeruca200" period_time 0 period_size 1024 buffer_size 4096 rate 48000 } bindings { 0 0 1 1 } } #pcm.dmixstrixraiddlx { # type dmix # ipc_key 1035 # slave { # pcm "strixraiddlx" # period_time 0 # period_size 1024 # buffer_size 4096 # rate 48000 # } # bindings { # 0 0 # 1 1 # } #} pcm.dmixmbox3mini { type dmix ipc_key 1036 slave { pcm "mbox3mini" period_time 0 period_size 1024 buffer_size 4096 rate 48000 } bindings { 0 0 1 1 } } # 2019-06-09 # Added dmix device despite hwmix support as # periodically I still got "Device or resource busy". # But the dmix device didn't help... #pcm.dmixsoundblasterxfi { # type dmix # ipc_key 1037 # slave { # pcm "soundblasterxfi" # period_time 0 # period_size 1024 # buffer_size 4096 # rate 48000 # } # bindings { # 0 0 # 1 1 # } #} pcm.dmixmbox2_1 { type dmix ipc_key 1038 slave { pcm "mbox2_1" period_time 0 period_size 1024 buffer_size 4096 } bindings { 0 0 1 1 } } pcm.dmixmbox1 { type dmix ipc_key 1039 slave { pcm "mbox1" period_time 0 period_size 1024 buffer_size 4096 rate 48000 } bindings { 0 0 1 1 } } pcm.dmixfasttrack_1 { type dmix ipc_key 1040 slave { pcm "fasttrack_1" period_time 0 period_size 1024 buffer_size 4096 rate 48000 } bindings { 0 0 1 1 } } pcm.dmixfasttrack_2 { type dmix ipc_key 1041 slave { pcm "fasttrack_2" period_time 0 period_size 1024 buffer_size 4096 rate 48000 } bindings { 0 0 1 1 } } pcm.dmixmbox2_2 { type dmix ipc_key 1042 slave { pcm "mbox2_2" period_time 0 period_size 1024 buffer_size 4096 rate 48000 } bindings { 0 0 1 1 } } pcm.dmixsoundblastertactic3drageusb { type dmix ipc_key 1043 slave { pcm "soundblastertactic3drageusb" period_time 0 period_size 1024 buffer_size 4096 rate 48000 } bindings { 0 0 1 1 } } pcm.dmixsoundblasteraudigyrx { type dmix ipc_key 1044 slave { pcm "soundblasteraudigyrx" period_time 0 period_size 1024 buffer_size 4096 rate 48000 } bindings { 0 0 1 1 } } pcm.dmixtascamus100 { type dmix ipc_key 1045 slave { pcm "tascamus100" period_time 0 period_size 1024 buffer_size 4096 rate 48000 } bindings { 0 0 1 1 } } pcm.behringeruca202 { type hw card CODEC device 0 channels 2 } pcm.behringeruca200 { type hw card CODEC_1 device 0 channels 2 } pcm.fasttrack_1 { type hw card Track device 0 channels 2 } pcm.fasttrack_2 { type hw card Track_1 device 0 channels 2 } pcm.hyperx { type hw card Sound device 0 channels 2 } pcm.hyperxamp { type hw card Amp device 0 channels 2 } #pcm.mixamp { # type hw # card MixAmp # device 0 # channels 2 #} pcm.mbox1 { type hw card MBox device 0 channels 2 format S24_3BE rate 48000 } pcm.mbox2_1 { type hw card M2 device 0 channels 2 format S24_3BE } pcm.mbox2_2 { type hw card M2_1 device 0 channels 2 format S24_3BE } pcm.mbox3mini { type hw card Mini device 0 channels 2 } pcm.onboard { type hw card Generic device 0 channels 2 } pcm.sennheisergsx1200pro { type hw card Audio device 1 channels 2 } pcm.soundblasteraudigyrx { type hw card Audigy2 device 0 channels 2 } pcm.soundblasterrecon3dusb { type hw card Recon3D device 0 channels 2 } pcm.soundblastertactic3drageusb { type hw card USB device 0 channels 2 } pcm.soundblasterxfi { type hw card XFi device 0 channels 2 } pcm.soundblasterzxr { type hw card Creative_1 device 0 channels 2 } pcm.soundblasterz { type hw card Creative device 0 channels 2 } #pcm.strixraiddlx { # type hw # card DLX # device 0 # channels 2 #} pcm.tascamus100 { type hw card CODEC_2 device 0 channels 2 } #pcm.turtlebeachearforce450 { # type hw # card E450 # device 0 # channels 2 #} ctl.dmixer { type hw card 1 } Sources: * [[http://slack4dummies.blogspot.com/2012/02/alsa-multiple-output-multiple-sound.html|Slackware 13.37 for dummies - Alsa: multiple output, multiple sound cards, multiple users]] * [[http://www.6by9.net/output-to-multiple-audio-devices-with-alsa/|6by9 - Output to multiple audio devices with alsa]] * [[https://stackoverflow.com/questions/43939191/alsa-how-to-duplicate-a-stream-on-2-outputs-and-save-system-configs|stackoverflow - ALSA how to duplicate a stream on 2 outputs and save system configs]]