[alsa-devel] Master vs. Front/Rear/LFE/... elements

Takashi Iwai tiwai at suse.de
Mon May 11 11:26:30 CEST 2009

At Sun, 10 May 2009 00:11:39 +0200,
Lennart Poettering wrote:
> On Thu, 07.05.09 15:18, Takashi Iwai (tiwai at suse.de) wrote:
> > > > Fixing it isn't too difficult with vmaster stuff in the driver side,
> > > > but this breaks the compatibility, and hard to find the real test
> > > > machines nowadays.  In short, "don't touch a working system unless it
> > > > gets broken" phase.
> > > 
> > > Breaks compatibility with what exactly? OSS?
> > 
> > Yes, and old ALSA-native apps without PA.
> Hmm. why exactly should that happen? I mean, the ALSA mixer API knew
> definitions like snd_mixer_selem_channel_id since about the beginning
> of time. Just making use of it shouldn't cause breakage in programs.

Using it means to change the current mapping.  This would likely break
the things.

> And even when if it does, this would be the 'softest' kind of breakage
> one can think of. Also, most of the apps in question are Free Software
> and could hence be fixed easily.

Oh you are naive :)

> > > May I assume that they always are dependant?
> > 
> > If both exist, then they should be dependent, and Master should be
> > really Master.
> Hmm, ok. So you say "Master" in this case is more "outside" and
> "Front" is more to the "inside", right? I.e. from the applications PoV
> Front is first, Master follows as last step, right?

Actually "Front" controls the volume from the front-output pin
(left/right) while "Master" influences on all output channels, front,
surround, CLFE, etc.

> > > Hmm, could you be more explicit which apps you think would break? I
> > > mean, the ALSA mixer API always allowed multichannel audio, however no
> > > driver actually made use of that. If a client is using the ALSA mixer
> > > API properly it should not break. And if it doesn't use it properly
> > > it's not ALSA's fault...
> > 
> > kmix surely won't work.  GNOME mixer?  I don't think it would.
> The new GNOME mixer links against PA, so it would support it
> indirectly. ;-)

Heh, but the "current" GNOME mixer would be broken.

> > Many media players (new and old) support a mixer adjustment more or
> > less, and certainly many of they won't work with multi channels.
> But to which effect? The worst thing that could happen is that they
> wouldn't show the Surround channels properly. But usually they
> wouldn't show that anyway..

I don't buy it unless you take over and fix all future bug reports.

Well, let my stance clear: I don't say that the change itself is
wrong.  But an incompatible change is just bad, at least, for the
current ALSA-lib.  It is no longer playground for children, and a
regression is one of the worst things we can do now.

That's why I suggest to begin with a new API set or to add a function
to switch the behavior.  In that way, a regression can be avoided
pretty easily.


More information about the Alsa-devel mailing list