On Tue, 2007-01-23 at 05:58 -0800, Mark Knecht wrote:
On 1/22/07, Paul Davis
<paul(a)linuxaudiosystems.com> wrote:
On Mon, 2007-01-22 at 21:13 -0500, Lee Revell
wrote:
On 1/22/07, ram <ram(a)hydrophones.com>
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