Re: Stereo > Mono Downmixing on iOS
Re: Stereo > Mono Downmixing on iOS
- Subject: Re: Stereo > Mono Downmixing on iOS
- From: Brian Willoughby <email@hidden>
- Date: Wed, 30 Mar 2011 16:01:41 -0700
There is no option for down-mixing that simultaneously meets all
standard goals. Therefore, the logical question is: What are your
goals?
(L+R)/2 is the safest option, because it will never clip. But, as
you noticed, it has the worst side-effect in terms of lowered output
level. The "/2" part of the equation is a 6 dB drop.
Acoustically, two separate speakers mix to "mono" (e.g. playback on
two speakers with one microphone recording the acoustic mix) with
approximately 3 dB difference instead of 6 dB, but acoustics do not
generally have to be concerned about 0 dBFS. You could simulate this
by dividing L+R by the square root of 2, instead of dividing by 2.
But this option would both allow some clipping and suffer some loss
of output level.
Video game software mixers historically have ignored the goal of
completely undistorted sound, and thus can get away with using L+R
without the /2 adjustment. This solves the loss of signal level at
the cost of potential clipping distortion.
Either of the last two options, -3 dB or -0 dB, could be improved by
using Apple's AUPeakLimiter to avoid clipping distortion. The
drawback is that limiting can alter the sound.
As far as I am aware, there is no option to avoid canceling out when
mixing stereo to mono. The standard is for the mixing engineer of
the original material to test for this at production time and avoid
the problem up front. Still, some consumer electronics fake stereo
from a mono source by creating L=-R, which would completely cancel
out when mixed back to mono. There are only two ways to protect
against this possibility: A) Avoid mixing entirely and take either L
or R as the mono output. This obviously runs the risk of losing any
audio from the other channel, but there is no signal level loss and
no clipping. B) You could write code which detects cancellation and
adapts to it on the fly by changing the mix algorithm.
So, you see, there are many standard approaches, depending upon what
the important goals are, and also depending upon the source
material. There simply is no single approach that handles all
possible stereo inputs with no negative side-effects.
Brian Willoughby
Sound Consulting
On Mar 30, 2011, at 11:25, Jan wrote:
I actually tried that but I was unsure if that’s the best option ((L
+R)/2). There seem to be certain cases where this could lead to the
signal getting cancelled-out, and the signal level can get lowered
for songs that have very different left/right channels.
Is that solution the standard approach for downmixing stereo to mono?
On Wed, Mar 30, 2011 at 10:51 AM, Jan <email@hidden> wrote:
I’m trying to downmix a PCM stereo signal to mono on iOS
(realtime). The input consists of the two (stereo) channels, which
are processed through a number of effects, and in the end I need
two channels back out, where each channel is a mono downmix of the
stereo signal at the end of the chain (i.e. both output channels
would be identical).
I though I could maybe use the AudioConverter but it doesn’t seem
to do mixing, and the MultiChannelMixer seems to be quite limited
on iOS as well in terms of output channel configuration.
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden