Hi Kai,
Actually this is not quite correct. Dmix is part of
standard ALSA and is thus available on any recent Linux
system.
You are of course right that dmix is not commonly
configured to be part of default plugins.
Yep, you're right. It is installed, but of course I meant that
per default an asoundrc is missing most often.
But most ALSA
apps allow you to specify which soundcard to use (the usual
implicit choice is 'default'). If you specify "plug:dmix",
you'll get dmix output in most cases (unless user has
overridden the asoundrc configuration).
For example:
aplay -Dplug:dmix foo.wav
alsaplayer -o alsa -d plug:dmix
ecasound -i foo.wav -o alsa,plug:dmix
Thanks for pointing this out. I'm still not experienced enough
concerning ALSA and DMIX. I tried to write an asoundrc (which
should not only enable DMIX but also order my cards in a
certain order), but at some point I gave up ;-) .
This works on my system with vanilla alsa-lib-1.0.4
(quite
old version in fact) without absolutely no modifications to
any ALSA configuration files (I don't even have a
~/.asoundrc on this machine). So I assume this should work
out-of-the-box on any system that has recent ALSA (SuSE
systems, FC2 and newer, Mandrake 10 and so on).
More info at:
http://alsa.opensrc.org/index.php?page=DmixPlugin
Yeah, I already read it. But still it requires manual work.
So, I thouht about a small script which could create an
asoundrc automatically, then I tried to tweak the alsaconf
script, the I saw it needs some rewriting and refactoring,
and then I gave up ;-) .
PS I think dmix is _the_ solution for "desktop
sound
mixing". Together with JACK they form a killer combo. :)
Do you use both at the same time? Jack is running all day and
using DMIX, while maybe artsd or esound is running in
parallel for desktop audio?
I
use JACK when making music (ability to route audio between
apps, transport control), and dmix when listening to mp3s
(wide application support, no need to run nor configure any
servers; still great performance ... also latency-wise!).
Is DMIX transparent to any ALSA aware application, or does an
application need some coding to use DMIX, or is it needed to
invoke the application always with the plug:DMIX parameter?
It would be cool if it were transparent to the user.
Thanks & best regards
ce