Official Alsa pages:
Very precious notes from users:
By default sound is processed through dmix plugin which handles rate and channels conversion.
This plugin communicates directly with the ALSA kernel driver. It is a raw communication without any conversions.
To override “default” pcm device and route outputdirectly into hardware:
pcm.!default {
type hw
card 0
format S16_LE
}
With settings above, there is no possiblity to play mono sound (channel=1), when there is stereo audio device.
Change default card:
pcm.!default {
type hw
card 1
device 3
}
ctl.!default {
type hw
card 1
device 3
}
Is a plugin responsible for rate and format conversion.
pcm.!default {
type plug
slave {
pcm "hw:0,0"
format S16_LE
}
}
There might be problems with some programs though. Some applications always try to open a control device with the same name as the pcm device they are given, so you may also need to create a dummy control device with the same name:
ctl.!default {
type hw
card 0
}
asym is an ALSA PCM plugin that combines half-duplex PCM plugins like dsnoop and dmix into one full-duplex device. http://alsa.opensrc.org/Asym
PCM plugins extend the functionality of PCM devices allowing low-level sample conversions and copying between channels, files and soundcard devices. The dmix plugin provides for direct mixing of multiple streams. http://alsa.opensrc.org/Dmix