On Wed, 2016-03-02 at 11:41 +0100, Klaus Jaensch wrote: > Am 01.03.2016 um 15:44 schrieb Tanu Kaskinen: > > On Tue, 2016-03-01 at 14:40 +0100, Klaus Jaensch wrote: > > > Am 01.03.2016 um 11:19 schrieb Tanu Kaskinen: > > > > On Mon, 2016-02-29 at 17:33 +0100, Klaus Jaensch wrote: > > > > > I'm wondering why it is the default to mix the channels. > > > > If there's a device with channel map "front-left,front-right", and a > > > > capture stream appears that has channel map "mono", do you wish that > > > > pulseaudio would by default take audio only from the left channel? Why > > > > would that be more likely what the user wants, rather than taking audio > > > > from all channels the device has, or only from the right channel? > > > Yes. If the user wants only the left channel he has no chance to do so. > > > (Without changing the configuration.) > > > You can't split the mixed channels later. The only way is to record > > > stereo and split the channels later. > > > > > > If you want a mix of both channels  it is always possible to record > > > stereo and mix it later. > > > > > > Another problem with mixing is that the level meter of applications like > > > audacity show the amplitude of the mix. If you do not know that the > > > level meter shows only half of the dynamic range (-6dB) if only one > > > microphone is plugged to the left channel it is likely that you overmodulate > > > the recording. > > > > > > And as far as I know it is the default on Windows and Mac OS X to record > > > only the left channel. I've checked this with some of our USB audio devices. > > It could be also argued that if the recording application wants to pick > > just one specific channel, it should set the stream channel map > > accordingly. But after pondering this for a bit, I think I agree it > > would probably good to map mono recording streams only to the first > > channel (usually left) of the device by default. This is, however, one > > of those "patches welcome" situations - I don't think I'll have time to > > implement this myself. > I will see if I can do that. Could you point me to the code location > where the channel mixing is done? setup_remap() in src/pulsecore/resampler.c does the decisions about what channel goes where. Currently the function doesn't have knowledge about which of the input and output is the stream and which is the device. I don't think the proposed change makes sense in playback use cases, so only recording use cases should be affected, so the stream/device split needs to be made known to setup_remap(). -- Tanu