Till Varoquaux till.varoquaux at gmail.com
Sat Oct 15 10:46:43 CDT 2005


Esound[1] architecture is known to be flawed. I beleive now is a good
time to move Ubuntu to a new sound server, namely Polypaudio[2] I will
not list all of its problems here however I will the ones I see as
major show stoppers:

_Esound does not use the full capabilties of underlying output
drivers. esd is a software mixer, if you layer it over an alse driver
that supports mixing (may it be dmix or hardware mixing...) it will
STILL do software mixing. Too bad for all of you using expensives
cards. Check out [3] for more info
_Esd cannot be layered: anyone working on audio stream needs jack.
Esound only supports output to OSS or ALSA therefor you won't be able
to run Jack[4] and esd in the same time. Since lots of application
cannot use Jack you will have to choose beetween using you sound
editing application (ardour for instance) and having sound in normal
applications.
_Esd devellopement seems to be halted.
_Esd introduces a lot of latency. At least on my computer. Polypaudio
seems to introduce less latenc bu default. Given it's architecture[3]
sound can just pass through to a server with less latency (alsa with
dmix for instance).

As said before, for a certain class of person having Jack is
essential. Those are artists, not geeks, we should help them by
simplifying the number of steps. I think this integration could make
some artists move to Ubuntu.
There is already a debian based distribution from which many packages
could be ported.

Of course there are other solutions including Mas [6] but they seem less mature.


[1]Esound's site:http://www.tux.org/~ricdude/EsounD.html
[6]Polyaudio's site:http://0pointer.de/lennart/projects/polypaudio/
[3]Discussion on polypaudio pluggable
architecture:http://lists.freedesktop.org/archives/xdg/2004-September/004816.html
[4]Jack's site:http://jackit.sourceforge.net/
[5]Demudi:http://demudi.agnula.org/
[6]MAS:http://www.mediaapplicationserver.net/

Till



More information about the ubuntu-devel mailing list