[LAD] Mixing audio: Implementing pan and balance
Tim E. Real
termtech at rogers.com
Tue Mar 12 20:24:49 UTC 2013
On March 12, 2013 09:56:15 AM Fons Adriaensen wrote:
> On Tue, Mar 12, 2013 at 01:23:02AM -0400, Tim E. Real wrote:
> > I noticed our app uses this pan formula:
> > vol_L = volume * (1.0 - pan);
> > vol_R = volume * (1.0 + pan);
> > where volume is the fader value, pan is the pan knob value
> > which ranges between -1.0 and 1.0, and vol_L and vol_R are the
> > factors to be applied to the data when sending a mono signal
> > to a stereo bus.
> > When pan is center, 100% of the signal is sent to L and R.
> > At pan extremities, the signal is boosted by 3dB.
> 6 dB actually.
Sorry I thought the wiki pages were referring to power so
I expressed it as power.
> > But according to , we should be using a Pan Law ,
> > where pan center is around 3dB to 6dB down and pan
> > extremities is full signal.
> There are two independent issues involved here:
> 1. The attenuation at the center w.r.t. to extreme L and R.
> 2. Whether the center or the extremes should be 0 dB.
> (2) is very much a matter of taste and of virtually no practical
> consequence : you will adjust the fader (channel gain) to get
> the right balance anyway.
> Regarding (1), if you take psycho-acoustics into account you'd
> want -6 dB at the center for low frequencies and -3 dB for high
> frequencies, with a gentle crossover at around 500 Hz or so.
> So the SSL compromise of -4.5 dB makes sense.
> Note that unless you use the panner to move a sound around
> during a mix, all of this hardly matters: you will adjust
> the balance anyway and compensate for whatever the panner
> is doing.
> Returning to (2): for a panner (mono -> stereo) I'd prefer
> 0 dB at L and R. For a balance control (stereo -> stereo)
> I'd prefer 0 dB at the center position.
OK thanks. Makes sense to me. That obeys the pan rules.
Interesting about the crossover bit.
Wow, I considered adding selectable pan laws but didn't realize crossovers.
I will look at having separate pan controls for each channel on one strip,
as I'm reminded from talking to Paul that Ardour has this :)
More information about the Linux-audio-dev