PanLaw.h — Pan Laws¶
Pan Laws are volume curves used when panning a signal in order to maintain a constant perceived loudness from hard left to hard right. Pan laws generally provide a reduction in volume to both channels when panned center, to eliminate a peak in volume when both channels are playing back at the same volume.
Linear Pan Law¶
A linear Pan law is the simplest pan law, and has each channel at -6dB when panned center.
-
Error_t
linear_pan(float control, float *l_gain, float *r_gain)¶ Calculate linear pan channel gains.
Use a linear curve to mix between two sources. Results in a peak at the center.
- Return
- Error code.
- Parameters
control-Pan amount. Must be between 0 (hard left) and 1 (hard right)
l_gain-Left channel gain.
r_gain-Right channel gain.
3dB Equal Power Pan¶
A circular pan law with each channel at -3dB when panned center.
-
Error_t
equal_power_3dB_pan(float control, float *l_gain, float *r_gain)¶ Calculate 3dB Equal-Power pan channel gains.
Use an equal-power curve to mix between two sources. Results in both channels being down 3dB at the center.
- Return
- Error code.
- Parameters
control-Pan amount. Must be between 0 (hard left) and 1 (hard right)
l_gain-Left channel gain.
r_gain-Right channel gain.
6dB Equal Power Pan¶
A circular pan law with each channel at -6dB when panned center.
-
Error_t
equal_power_6dB_pan(float control, float *l_gain, float *r_gain)¶ Calculate 6dB Equal-Power pan channel gains.
Use an equal-power curve to mix between two sources. Results in both channels being down 6dB at the center.
- Return
- Error code.
- Parameters
control-Pan amount. Must be between 0 (hard left) and 1 (hard right)
l_gain-Left channel gain.
r_gain-Right channel gain.