linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: William Pitcock <nenolod@atheme-project.org>
To: Adrian Bunk <bunk@stusta.de>
Cc: linux-kernel@vger.kernel.org
Subject: Re: Is it time for remove (crap) ALSA from kernel tree ?
Date: Sat, 7 Jul 2007 02:41:05 +0000 (GMT)	[thread overview]
Message-ID: <Pine.LNX.4.64.0707070220440.20167@osiris.atheme.org> (raw)

On Wed, 4 Jul 2007 19:32:29 +0200, Adrian Bunk wrote:
> On Wed, Jul 04, 2007 at 02:35:39AM -0400, Darren wrote:
>>
>> I know this may sound kind of stupid, but how about not deprecating either,
>> and fully supporting both sound systems? Maybe we can get them to work
>> together, and the distro or user can choose whether they would like to use
>> alsa or oss for that particular card (or have the distro choose the sound
>> drivers that are best supported for that particular card). As it is now,
>> most apps already support oss and alsa.
>
> It does not sound stupid and sounds good at first sight.
>
> But there are problems we've already seen with similar situations in
> different parts of the kernel:
> They would have different hardware support, features and bugs.
>
> And then a user user whose sound card is only supported by sound system A
> needs a feature only available in sound system B.
>
> And the quality decreases since people will often not report bugs in
> sound system A if sound system B works for them.
>
> OTOH, for a user it shouldn't matter whether there's OSS or ALSA, that's
> mostly a difference for application developers. And since (as you say)
> most applications already support both, there's no compelling reason for
> providing more than one of them.
> 
> cu
> Adrian
>

If the developers of ALSA made a nuclear reactor, it would have five 
different control panels for controlling the rods in the reactor core, and 
each would do something different and not what the documentation said.

Actually, I lied about that. It wouldn't have any usable documentation. 
But, there would be a hidden feature that you could sound the overload 
alarm by pulling out the stapler in the control office. Useful feature, 
that.

As an audio developer on Linux, I must say that developing with ALSA is 
absolute fucking hell. If there was a way where both APIs could natively 
be supported, more people would be happy with the current state of affairs 
in the kernel.

The most fucked up thing that I can think of about the current state of 
affairs in ALSA is dmix. Every other UNIX sound system like ALSA does it's 
software mixing in kernel space. The applications never even know about 
it. It's not only until recently (2005-2006 or so) that ALSA came close to 
this, but there are still problems. Many cards need workarounds to make 
dmix work because of the way it works, and the way that ALSA buffers data 
around.

For the non-technically inclined, ALSA only keeps two fragments for 
input/output data each. This is horribly unusable because most soundcard 
fragments are only 1KB, so applications have to adopt ringbuffers to pass 
data to ALSA. If you're doing video, this leads to possible timing issues 
unless you sit down and well design your abstraction layer for audio I/O.

So people switch to things like JACK and PulseAudio because it's the only 
way they can get workable Audio I/O on ALSA.

What's even worse for the ALSA API is that it's designed around lowlatency 
programming, but only a few drivers properly support it. Why do you need 
lowlatency access to play a beep or a ding or whatever? The simple answer 
is you don't.

ALSA could and can be done correctly, but OSS4 is already here and 
provides an API which solves all of ALSA's current problems. So why waste 
time with that, when OSS4 is already here and more friendly to the 
developers of the software most Linux users use?

If OSS4 and ALSA apis could run on the same base driver, then a lot more 
people will be happier, as there will be choice available in which API to 
use, e.g. OSS4 or the libasound self-abuse method.

Hannu has ideas on how that could work. I suggest all of the kernel 
developers listen, and listen well, or this mess will never be fixed in a 
way that is truly usable.

   -nenolod

             reply	other threads:[~2007-07-07  3:00 UTC|newest]

Thread overview: 108+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-07-07  2:41 William Pitcock [this message]
2007-07-07 13:23 ` Is it time for remove (crap) ALSA from kernel tree ? Carlo Wood
     [not found] <fa.C+RaPJT9DzfOowG03yiRkB6ItF8@ifi.uio.no>
     [not found] ` <fa.eZW1VxypFFwQqmC93xQaStxDK0Q@ifi.uio.no>
     [not found]   ` <fa.n+OzEywqHGabZtz5NxmlX4rEY0A@ifi.uio.no>
2007-06-29  1:16     ` Robert Hancock
2007-06-29 22:04       ` Rene Herman
  -- strict thread matches above, loose matches on Subject: below --
2007-06-28 12:42 Anton Petrusevich
2007-06-28 15:02 ` Rene Herman
2007-06-28 16:34   ` Anton Petrusevich
2007-06-28 16:38     ` Xavier Bestel
2007-06-28 18:56     ` Rene Herman
2007-06-28 19:33       ` Tomasz Kłoczko
2007-06-28 19:34         ` Rene Herman
2007-06-29 10:30     ` Florian Schmidt
2007-06-29 11:40       ` Anton Petrusevich
2007-06-29 12:38         ` Florian Schmidt
2007-06-29 12:29 ` Gabriel C
2007-06-27 16:25 Andreas Hartmetz
2007-06-27 17:29 ` Rene Herman
2007-06-27 19:10   ` Andreas Hartmetz
2007-06-27 23:12     ` Rene Herman
2007-06-28  0:18       ` Patrick Draper
2007-06-28  1:58         ` Rene Herman
2007-06-28  2:28           ` Rene Herman
2007-06-28 11:15             ` Rene Herman
2007-06-28  3:04           ` Patrick Draper
2007-06-28  3:22             ` Lee Revell
2007-06-28  5:13             ` Arjan van de Ven
2007-06-28 11:50             ` Tomasz Kłoczko
2007-06-28 11:58               ` Gabriel C
2007-06-28 12:57               ` Rene Herman
2007-06-28 12:39             ` Rene Herman
2007-06-26 20:39 Andreas Hartmetz
2007-06-26 21:10 ` Måns Rullgård
2007-06-27  3:59 ` Rene Herman
2007-06-28  3:41 ` Lee Revell
2007-06-28 11:52   ` Tomasz Kłoczko
2007-06-28 13:02     ` Meelis Roos
     [not found] <fa.4npeXBdRGMm2JoKWe0qhjQdrJkk@ifi.uio.no>
     [not found] ` <fa.bAhr1dmoWCFU+8Kxo95nsy5DRRU@ifi.uio.no>
     [not found]   ` <fa.MQ77mllForge5OWcDydLlI0yp8s@ifi.uio.no>
2007-06-24 19:37     ` Robert Hancock
2007-06-24 18:35 Ash Willis
2007-06-24 19:01 ` Tomasz Kłoczko
2007-06-24 17:51 Tomasz Kłoczko
2007-06-24 19:08 ` Alan Cox
2007-06-24 19:24   ` Tomasz Kłoczko
2007-06-24 19:27     ` Jan Engelhardt
2007-06-24 21:43       ` Rene Herman
2007-06-25 10:06       ` Tomasz Kłoczko
2007-06-25 10:46         ` Jan Engelhardt
2007-06-25 20:32         ` Hannu Savolainen
2007-06-24 20:57     ` Alan Cox
2007-06-24 22:43       ` Olivier Galibert
2007-06-24 22:44       ` Carlo Wood
2007-06-24 22:48         ` Jesper Juhl
2007-06-24 23:13           ` Carlo Wood
2007-06-25  3:41         ` Nobin Mathew
2007-06-25  9:06           ` Alan Cox
2007-06-25 10:41             ` Takashi Iwai
2007-06-25  9:51       ` Tomasz Kłoczko
2007-06-25 10:58         ` Takashi Iwai
2007-06-25 11:36           ` Tomasz Kłoczko
2007-06-25 12:31             ` Takashi Iwai
2007-06-25 12:40               ` Jan Engelhardt
2007-06-25 12:47                 ` Olivier Galibert
2007-06-25 12:50                   ` Takashi Iwai
2007-06-25 12:44               ` Olivier Galibert
2007-06-25 12:58                 ` Takashi Iwai
2007-06-25 13:20                   ` Olivier Galibert
2007-06-25 13:21                 ` Adrian Bunk
2007-06-28 18:30                   ` Nix
2007-06-28 20:02                     ` Rene Herman
2007-06-28 20:20                       ` Lee Revell
2007-06-28 20:43                         ` Adrian Bunk
2007-06-28 20:22                       ` Jeff Garzik
2007-06-28 21:06                     ` Adrian Bunk
2007-06-28 21:37                       ` Rene Herman
2007-06-28 22:24                       ` Nix
2007-06-29 11:52                       ` Florian Schmidt
2007-06-29 14:56                         ` Miklos Szeredi
2007-06-29 15:49                           ` Alan Cox
2007-06-29 15:55                             ` Miklos Szeredi
2007-06-29 16:14                               ` Miklos Szeredi
2007-07-01 11:46                                 ` Florian Schmidt
2007-07-01 12:17                                   ` Miklos Szeredi
2007-06-29 18:39                   ` Pavel Machek
2007-06-25 17:00               ` Tomasz Kłoczko
2007-06-25 22:49                 ` Rene Herman
2007-06-25 13:01             ` Gabor Gombas
2007-06-25 13:41               ` Tomasz Kłoczko
2007-06-25 14:05                 ` Gabor Gombas
2007-06-25 13:21             ` Renato S. Yamane
2007-06-25 14:02               ` Tomasz Kłoczko
2007-06-25 13:46             ` Rene Herman
2007-06-25  6:24     ` Carlo Florendo
2007-06-25  6:22 ` Carlo Florendo
2007-06-25 10:53 ` Takashi Iwai
2007-06-25 11:50   ` Tomasz Kłoczko
2007-06-25 13:04     ` Bartlomiej Zolnierkiewicz
2007-06-25 21:18   ` Hannu Savolainen
2007-06-25 23:17     ` Adrian Bunk
2007-06-26 16:25       ` Wakko Warner
2007-06-26 16:52         ` Takashi Iwai
2007-06-27 11:11           ` Wakko Warner
2007-06-26  9:35     ` Takashi Iwai
2007-06-26 11:48     ` Jeff Garzik
2007-06-25 14:44 ` Lennart Sorensen
2007-06-25 15:48   ` Tomasz Kłoczko
2007-06-25 17:13     ` Lennart Sorensen
2007-07-04  6:35 ` Darren
2007-07-04 17:32   ` Adrian Bunk
2007-07-05 12:59     ` Tomasz Kłoczko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.LNX.4.64.0707070220440.20167@osiris.atheme.org \
    --to=nenolod@atheme-project.org \
    --cc=bunk@stusta.de \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).