Re: [linux-audio-user] Re: hardware mixing

From: Paul Davis <paul@email-addr-hidden>
Date: Tue Jan 23 2007 - 17:24:07 EET

On Tue, 2007-01-23 at 05:58 -0800, Mark Knecht wrote:
> On 1/22/07, Paul Davis <paul@email-addr-hidden> wrote:
> > On Mon, 2007-01-22 at 21:13 -0500, Lee Revell wrote:
> > > On 1/22/07, ram <ram@email-addr-hidden> wrote:
> > > > I can confirm the RME HDSP 9632 cards and add-ons also support hardware mixing.
> > > > They work really well too I may add.
> > >
> > > I stand corrected. Mark was right - these devices do have hardware
> > > mixing, they just implement it in an odd way, probably to keep the
> > > interface similar to other OS.
> >
> > its not true to say that with ALSA, they support what is commonly
> > understood as h/w mixing.
>
> Is there a commonly understood meaning? I guess I'm uncommonly (or
> commonly for me) in the dark about that.

a few years ago there were lots of consumer cards that allowed you to
open them up to, say, 32 times. the card would mix each stream to the
outputs. this has all been abandoned in favor of s/w mixing now.

> > you cannot do independent open's of several
> > subdevices and get the output of each subdevice mixed down to the
> > outputs.
>
> This seems a Linux Software Developer centric statement. What does it mean?

it means that you can have up to N apps all using the same card without
any s/w mixing going on. each one calls snd_pcm_open() which internally
calls snd_pcm_open_subdevice() and assuming the subdevices are not all
busy, it will work. a subdevice is a "stream" that always sends its
signal to the outputs associated with the PCM device, but can be opened
and closed independently.

> Is this a hardwired limitation of the hardware, or is it a limitation
> of the current ALSA driver for the HDSP cards?

well, it could be argued either way. the channels in the HDSP could be
represented as subdevices (there is an OSS driver that Guenter Geiger
wrote that does this), but the HDSP channels are much less independent
than a typical subdevice - they run at the same rate, format etc. and
cannot be stopped and started independently.

> > yes, they do have a very powerful h/w matrix mixer, but it is not
> > accessible via a series of independent subdevices. it also is not
> > supported by the ALSA mixer API at this time.
> >
>
> This sounds like it's a limitation of the card so it wouldn't ever
> work? Even under Windows or OSX?

Actually, the drivers for Windows does allow this. Can't recall if the
OS X driver does - it might.

> What cards do support (under ALSA) a "series of independent
> subdevices" which can then be output and then mixed in hardware?

My main example is a Trident card - a relatively cheap "high end
consumer card" that had 32 subdevices, 4 channel out + S/PDIF for about
US$60 ...

I think that several Ensoniq cards and even a few of the Creatives could
do this as well.

--p
Received on Tue Jan 23 20:15:05 2007

This archive was generated by hypermail 2.1.8 : Tue Jan 23 2007 - 20:15:05 EET