At Fri, 30 Mar 2007 00:32:16 +0200, Ingo Müller wrote:
Takashi Iwai schrieb:
So my suggestion so far when we have been discussing this inside the GStreamer community is to use 'front' as default device instead of 'default'.
A drawback of "front" is that it doesn't include the software mixing feature. (Dito for "surround*" and "spdif") So far, only "default" PCM has a dmix as it is. If gstream is the only sound system, it'd be fine, though.
That way we will always play(downmix) all channels and nobody 'lose' sound. We can then provide configuration GUI's like Totem do to override this when people have surround capable systems (meaning both capable card and connected speakers). Do this sound like a reasonable approach t you?
It sounds reasonable to me.
Or, you can simply assume number of channels for each preset, i.e. 2ch = default, 4ch = plug:surround40, 5.1ch = plug:surround51, without querying alsa-lib.
Takashi
I'd prefer the "default" device being the default device - that's why it's called like this :-) As the default device is usually a stereo device, only stereo sound should be played there. Surround sound should be played on surround51, surround40, surround71... depending on how many channels the stream has. What these devices do with the sound they receive is not the problem of the application, IMO.
I see your point. Actually, other PCM name was proposed at first, but in the end, it was simply merged to "default" because everyone uses it. We have "front" for the front 2-channel if it really matters.
A question still remains, however: should these outputs be coped with dmix? For example, we can set up relatively easily the dmix + plug version of surround51, too.
One possible problem with plug+dmix'ing surround51 is that this would result in incompatibility with older configuration, and may break the apps using the current config. For example, plug over plug can result in unexpected channel routing. This is rather a bug, but a bit hard to fix, so far.
After that, ALSA or the distribution or the system admin should make sure, that the surroundX devices handle the sound apropriately. I'm sure it is possible to alter the predefined surroundX devices in a way so they upmix/downmix to the amount of channels the concerned sound card actually has. If one is more experienced, he can still overwrite the definitions of these predefined devices according to his suites.
The sound-system management is another missing piece in the whole picture that ALSA currently has. We have a flexible configuration, but it alone doesn't suffice. Currently, we're trying to provide a reasonable "default", which can work for _most_ of users OOTB. But, this isn't apparently enough nowadays. Now the time to consider...
Takashi