[nas] [PATCH] voxware server: using different in and out devices

Erik Auerswald auerswal at unix-ag.uni-kl.de
Fri Aug 11 19:53:31 MDT 2006


On Fri, Aug 11, 2006 at 06:07:29PM -0600, Jon Trulson wrote:
> On Fri, 11 Aug 2006, Erik Auerswald wrote:
> >On Thu, Aug 10, 2006 at 10:16:27PM -0600, Jon Trulson wrote:
> >>On Thu, 10 Aug 2006, Erik Auerswald wrote:
> [...]
>         I have an old SB PCI - it does support FDX operation; I've
>         never been in posession of a half-duplex card, but some nas
>         users sure have :)

The cards did support full-duplex operation, just the free OSS driver
did not. You had to buy the commercial OSS driver to use this under
linux. I did have a soundblaster pro (ISA bus) with this problem. Today
one would just use ALSA for full-duplex operation.

> >In my case I configured the S/PDIF out of the on-board sound as one OSS
> >device and the normal "analog" in/out hw as another. The sound card
> >mixer controls all of these devices so I don't need seperate mixers.
>   I'm confused... You really only have a single sound device right?
>   It may have multiple outputs, but it's still a single device?

This depends on your definition of "device". ;-)

There is sound hardware on the mainboard included in the (nvidia nforce3)
chipset. ALSA reports this as one card. There is one analog output, one
line input, one microphone input, and one digital output connector. This
could be seen as one device.

ALSA reports 4 devices, two capture and two playback devices. Two of
these ALSA devices have the same prefix: pcm0 (pcm0c and pcm0p), one
device is an additional microphone input (pcm1c) and the last one is the
digital output device (pcm2p).

So there are two independent output devices pcm0p and pcm2p and supposedly
two independant input devices pcm0c and pcm1c (I did not verify the input
part). When using ALSA programs all of these devices can be specified.

When using the OSS emulation of ALSA (e.g. with the voxware NAS server)
I have to specify either /dev/dsp or /dev/adsp as devices. By default
/dev/dsp is mapped to pcm0[cp] and /dev/adsp to pcm1c. By using an option
for the emulation module pcm2p can be mapped to /dev/adsp instead. By
mapping either a capture or a playback device to /dev/adsp this is
half-duplex. This way I have two independent OSS devices I can use. The
voxware server can be configured to use both devices, one for input and
one for output.

There is still only one mixer available, either using ALSA directly or
using /dev/mixer via the OSS mixer emulation module of ALSA.

With regard to one server per device: I would expect a sound server to
be able to export every available sound device. Just like the X server
there are uses for one server on several devices (e.g. Xinerama in X)
and for one server per device (and even for several servers time-sharing
one device).

I have just got a PCI sound card (so that I now have the onboard sound
and a sound card -- the sound card is not yet installed), and if I find
the time I will extend the support for two devices to fully include two
mixers as well. Right now a mixer can be specified in the input section
of nasd.conf, but it is not used.


More information about the Nas mailing list