[alsa-devel] [RFC PATCH] Inverted internal mic

Takashi Iwai tiwai at suse.de
Wed Feb 29 10:56:01 CET 2012


At Wed, 29 Feb 2012 10:21:35 +0100,
David Henningsson wrote:
> 
> On 02/28/2012 08:42 PM, Takashi Iwai wrote:
> > At Tue, 28 Feb 2012 19:11:15 +0100,
> > David Henningsson wrote:
> >>
> >> On 02/28/2012 04:20 PM, Takashi Iwai wrote:
> >>>> I'm talking about recording an internal mic in *stereo*, as I just wrote
> >>>> below. Or don't you agree that is a valid and probably fairly common use
> >>>> case?
> >>>
> >>> Well, when you record it in stereo, and play it back, then you hear
> >>> the sound without problem.
> >>
> >> That could definitely be questioned: depending on the distance between
> >> speakers when you're finally playing it back, you might lose bass
> >> frequencies [1]. (That said, I'm not sure how much bass these mics pick
> >> up anyway.)
> >
> > Well, it might be, in the worst case.
> >
> >>> The problem happens only when you sum the
> >>> left and right signals into mono.  Thus, as long as the stream is
> >>> handled as stereo, it could be passed as is, although it's not
> >>> optimal.
> >>
> >> So the official recommendation is that summing left and right to make a
> >> mono signal, is to be considered an invalid operation?
> >
> > It's not invalid in general but invalid for this digital mic.  That's
> > the only point.  Thus, avoiding summing only for known bad devices is
> > also a way to go, IMO.  It'd work more or less stably.
> > OTOH, muting the right reduces the risk but it also has a problem of
> > the lower volume and the lack of right signal in stereo streams, both
> > of which aren't easily avoided.
> >
> > So we need to find some point of compromise...
> 
> Avoiding summing only for known bad devices and only when mixer is set 
> to capture Internal Mic, is a quite complex condition that would have to 
> implemented in not only PulseAudio, but every application using ALSA 
> directly. (Well, and wants to either sum, or to avoid loss of bass and 
> strange stereo effects.)

As mentioned, ALSA-native "default" doesn't sum for mono signals.
It's not optimal for stereo, yeah, but better than summing blindly.

> The lower volume problem is also an argument only if you want to sum the 
> signal; so in this case it's lower volume against a cancelled signal 
> altogether, in which case lower volume is better.

Of course.  But my comparison is "pick up only left" vs "sum but
right-mute".  In the latter case, the lower volume happens also in
stereo streams (as a total volume), too.

> That leaves the lack of right signal in stereo streams, as a 
> disadvantage with the proposed solution. In which use cases do you think 
> this is a problem?

Honestly, I don't know.  It sounds really like a user's preference to
me.

BTW, it'd be possible to give some offsets to the internal mic capture
volume to compensate the lack of a stream.  Or, to make this behavior
selective via a mixer control.  In either way (especially the latter)
will make the code more complex.  So the question still remains: how
much compromise.


thanks,

Takashi


More information about the Alsa-devel mailing list