From the ALSA wiki
|The FAQs have been reorganized. The new location of this question is FAQ#What's all this dmix/dshare/dsnoop/asym stuff? How does it work?|
What's all this
dmix/dshare/dsnoop/asym stuff? How does it work?
Well-programmed ALSA apps don't talk to the ALSA kernel modules directly. They leave this job to the ALSA library alsa-lib which is designed to do the high-level stuff. Therefore apps talk to alsa-lib instead of the kernel modules.
alsa-lib now has the ability to offer more devices to the application than just the hardware devices. These additional devices can be defined in one of the config files (see the
.asoundrc file for per-user settings -- there are also other config files for system-wide settings which affect all users).
alsa-lib also has a list of "plugins" that can be used in the same way. So, for example it is possible to define a PCM called
"foo" which uses the DmixPlugin to create a device that is capable of mixing several audio streams in realtime, in software. Similarly, it is also possible (with dshare) to for example use the 6 channels of a 5.1 card to create 3 virtual stereo devices.