On Mon, 2007-01-08 at 23:23 +0100, Milan Mimica wrote:
> Hello!
>
> We're designing a new sound subsystem for allegro game programming
> library, and we would like to take advantages of multiple hardware voice
> capabilities.
very few audio interfaces have this feature anymore. most h/w makers
seem to assume s/w mixing and no longer provide multiple PCM h/w
streams.
> On linux, ALSA is the only software that possibly could expose API for
> such a capability, is that right?
its right and wrong. but mostly irrelevant.
> It is possible to open multiple PCM
> outputs and play sound at the same time on all of them.
if there *are* multiple h/w PCM voices, then ALSA provides "subdevices"
which get opened automatically each time you call snd_pcm_open() on a
given PCM device. however, as i mentioned, not much h/w provides this
any more. opening multiple PCM devices is entirely different and has its
own set of problems because the devices are generally not sample clock
synced.
> The problem is
> that we miss some basic mixing features, like panning a mono sound on
> multichannel output for example. A similar feature is implemented as
> 'route' ALSA plug-in that can be specified in .asoundrc file, but it is
> not flexible enough.
ALSA is not intended to provide any kind of live, real time signal
distribution API. this is a completely app-specific domain and it would
absurd for a generic HAL like ALSA to try to offer it. what you mean by
"panning" and the control you want is totally different than, say,
Ardour (http://ardour.org/) requires.
> So the question is, does ALSA provide such functionality? If not, which
> library could? Is it possible that linux OS doesn't provide any API to
> take advantage of such hardware capabilities?
in general, you should forget about the h/w capabilities of an audio
interface. for every user that has a device with some interesting
qualities, there will be 10 who do not.
welcome to winmodem for audio ...
--p
Received on Wed Jan 10 16:15:02 2007
This archive was generated by hypermail 2.1.8 : Wed Jan 10 2007 - 16:15:02 EET