public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Rene Herman <rene.herman@gmail.com>
To: Patrick Draper <pdraper@gmail.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: Is it time for remove (crap) ALSA from kernel tree ?
Date: Thu, 28 Jun 2007 03:58:07 +0200	[thread overview]
Message-ID: <468315AF.1080105@gmail.com> (raw)
In-Reply-To: <4682FE5C.5070004@gmail.com>

On 06/28/2007 02:18 AM, Patrick Draper wrote:

Please always use Reply-to-All on this list -- subscribers here like to also 
get personal copies.

> Rene Herman wrote:
>> KDE has finally dropped aRts from KDE4 and, again, ALSA has been 
>> mixing by default for some time now so we're talking history anyway. 
>> You want mixing on your card? You got it.
> 
> I've been following this discussion with some interest, to learn more 
> about ALSA. I've been creating startup scripts for all of my sound-using 
> applications which look like this:
> 
> LD_PRELOAD=libaoss.so exec /usr/bin/alsaplayer "$*"
> 
> I found that without libaoss.so preloaded, I wasn't getting software 
> mixing at all.

This would seem to indicate that your alsaplayer (what's in a name) is setup 
to output to OSS and not to ALSA...

The OSS interface -- consisting of direct access to device nodes such as 
/dev/dsp0, /dev/mixer and /dev/music -- is an older interface for sound on 
Linux. The newer ALSA interface works via a library API and is best used 
natively. For backwards compatibility though, ALSA also provides emulation 
of the older OSS interface.

It does so in two different ways in fact -- the first one is a direct kernel 
space emulation where ALSA interprets accesses to those device nodes it then 
manages much like real OSS would do. This kernel space emulation is made 
available through the "OSS PCM/Mixer/Sequencer API" you see as options in 
the ALSA kernel configuration menu.

The other way is a userspace emulation through the libaoss.so library that 
you are using. That library catches accesses to the OSS device nodes in 
userspace and translates them to ALSA accesses before they even get to the 
kernel.

ALSA does software mixing (the act of mixing two seperate streams together 
to form one) in userspace and as such, the kernelspace OSS emulation does 
not support software mixing, while this userspace emulation does -- if your 
ALSA default device is setup for software mixing (it is by default these 
days) this also works for this libaoss route. If you run a OSS program 
without the library preload it's using the kernel emulation though.

So -- the fact that mixing actually works for you when using libaoss means 
software mixing is working correctly for your ALSA setup. The only thing you 
should do is _use_ ALSA (natively) and not its OSS emulation so you can drop 
the library preload.

I don't have alsaplayer installed (wasn't that thing dead?) so I can't walk 
you through its configuration easily, but I suppose you'll be able to figure 
it out. If you need to specify an ALSA device somewhere, make sure it's not 
the old "hw:0" but "default" (or "default:0" for the first card, "default:1" 
for the second, ...). The "hw:N" devices don't do mixing.

> I'm constantly running an MP3 player, and with that library I can get
> sound alerts from other apps too.

I myself mostly use the ogg123 and mpg321 command line players, both based 
on libao and thereby only a simple:

$ echo "default_driver=alsa09" >/etc/libao.conf

away from being native ALSA players.

> I don't understand exactly what you mean by ALSA mixing by default. I 
> have the OSS Mixer API selected during kernel compiles. Is that what you
> are referring to?

No. That's part of the kernel space OSS emulation. A "mixer" in that context 
is the part of a soundcard that controls volumes and may mix the output of 
several parts of the card/chip for playback and its inputs for capture. Ie, 
that which is controlled by a mixer application such as the (ncurses) ALSA 
reference mixer "alsamixer" or the mixer your desktop environment provides.

Once you have everything running as a native ALSA application you could 
disable that option. In fact, since you're using the userspace emulation, 
you could already. The new-ish Flash Player 9 (important for youtube these 
days) for Linux is also an ALSA application and since I use it, I myself 
haven't needed OSS emulation for anything anymore.

Rene.


  reply	other threads:[~2007-06-28  2:01 UTC|newest]

Thread overview: 108+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-27 16:25 Is it time for remove (crap) ALSA from kernel tree ? 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 [this message]
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
  -- strict thread matches above, loose matches on Subject: below --
2007-07-07  2:41 William Pitcock
2007-07-07 13:23 ` 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
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-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=468315AF.1080105@gmail.com \
    --to=rene.herman@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pdraper@gmail.com \
    /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