Proposal: libunixmm.so (about the Comparison: MAS, GStreamer, NMM)
Kai Vehmanen
kai.vehmanen at wakkanet.fi
Thu Sep 9 23:02:10 BST 2004
On Thu, 9 Sep 2004, Christian Esken wrote:
>> aren't any soundservers that are really closely connected with either desktop
>> project I think we could probably do such in a reasonable fashion.
> Which sound servers are there?
> On Akademy I learned, gstreamer has none.
> MAS has a sound server.
> NMM has a sound server.
> arts has a sound server.
> esd is a sound server.
> What about NAS?
> ...
Just in case there are people who don't know about this:
ALSA's dmix plugin provides transparent (i.e. all ALSA apps
can take advantage of it) software-mixing:
http://opensrc.org/alsa/index.php?page=DmixPlugin
http://opensrc.org/alsa/index.php?page=Dmix+Kde+-+arts%2C+ESD+and+SDL+quick+and+dirty+HOWTO
http://gentoo-wiki.com/HOWTO_ALSA_sound_mixer_aka_dmix
http://forums.gentoo.org/viewtopic.php?t=99075
It's not perfect, but all the time getting better. It has some very good
features:
- the API is stable (alsa-lib past 1.0, has been developed since
1998 and has received much attention from both driver and
application developers)
- the API is widely used: ALSA is the default in Linux-2.6 -->
alsa-lib is the standard API .. lots and lots of applications
- dmix is very lightweight (no server process; the mechanism
Jaroslav has come up with is very, very clever)
- provides the option to use hw-acceleration on cards
that support it (not automatic, but fits the model perfectly
as ALSA knows about hw capabilities)
- does not add any additional latency, and very little processing
overhead (again, it's a very clever mechanmism)
- etc, etc...
Now the biggest problem for KDE and GNOME is that alsa-lib is currently
Linux-only... or is it? Now what you may not know that there is already a
plugin to make alsa-lib talk to jackd. And JACK of course has support for
PortAudio which again is probably the most widely supported cross-platform
audio backend. Ok, I admit that is at least one abstract layer too much,
but you get the picture -- alsa-lib is not just about Linux. Someone just
has to write alsa-lib plugins for BSDs, Solaris, win32 and so on...
Definititely ALSA's dmix does not solve all the problems. I still prefer
to run JACK on top of alsa-lib, as I need sample-synchronous execution of
multiple apps and inter-app routing (these are required for multitrack
recording where multiple audio apps are contributing to one session).
Also, media players will need a decoder-encoder-processor framework such
as gstreamer or aRts. Network support is another thing (maybe another
alsa-lib plugin).
Anyway, as alsa-lib is a library, basicly anything (network transparency,
mixing, alternative backends) can be added to it without affecting the
applications. All the time, the stable, post-1.0, widely used API of
alsa-lib will remain the same. It's something on top of which we can all
build our own systems (think: libX11...).
--
http://www.eca.cx
Audio software for Linux!
More information about the kde-multimedia
mailing list