Panner
This tool allows to pan $S$ sources on $N$ loudspeakers using Ambisonic equivalent panning laws1. The $i$-th source, with $i \in \{1, \cdots, S\}$ carries a signal denoted $s_i(z)$ in the discrete domain. Encoded as a point source, its position is $(r_i,\theta_i,\phi_i)$ from origin and it emits a spherical wave. For the $n$-th loudspeaker with $n \in \{1, \cdots, N\}$ and coordinates $(r_n, \theta_n, \varphi_n)$, the driving signal $s_n$ is given by:
\[\begin{equation} s_n = \sum\limits_{i=0}^{S} \sum_{l=0}^{L} s_i(z) z^{- \lfloor \frac{r_i}{c} \rfloor} w_{\text{max-}r_E, l}(L) \frac{F_l(r_i, z)}{F_l(r_n, z)} (2 l + 1) P_l(\cos(\gamma_i(n))), \label{eq:panning_law} \end{equation}\]where $P_l$ is the $l$-th Legendre polynomial, $w_{\text{max-}r_E}$ are the max-$r_E$ weights, $\frac{F_l(r_i, z)}{F_l(r_n, z)}$ are the The Near Field (NF) filters), and $\gamma_i(n) = \cos(\phi_i) \cos(\phi_n) \cos(\theta_i - \theta_n) + \sin(\phi_i) \sin(\phi_n)$ is the angle between the $i$-th source and the $n$-th loudspeaker.
The NF filters can be activated or not at compilation time with parameter nfon
.
If activated (nfon=1
), the gain attenuation and propagation delay between loudspeakers are as well equalized.
If not activated (nfon=0
), $\frac{F_l(r_i, z)}{F_l(r_n, z)} = 1$ in Eq. \eqref{eq:panning_law}, that is to say that no near field effect is included in the process.
In addition, a delay $\frac{r_i}{c}$ due to the propagation time can be included. When the source moves, this produces a Doppler effect, which can be activated or not at runtime.
Compilation parameters
S
: number of source, $S > 0$L
: maximal Spherical Harmonics degree, $L > 0$,N
: number of loudspeaker, $N > 0$,nfon
: activate or not NF filters:nfon=0
for no NF,nfon=1
for NF.speaker(n) = (x, y, z)
$n$-th loudspeaker Cartesian coordinates in meters. One loudspeaker per line.coord
: Choice of coordinate system :0
=> Spherical,1
=> Cartesian,doppler
: Possibility of Doppler effect :0
=> No,1
=> Yes.
Inputs / Outputs
- Inputs: $S$
- Outputs: $N$
User Interface
Element | OSC | Min value | Max value |
---|---|---|---|
Gain (dB) | gain_i |
-20 | 20 |
Doppler (doppler = 1 ) |
doppler_i |
0 | 1 |
Radius $r$) (m) (coord = 0 ) |
radius_i |
0.75 | 50 |
Azimuth $\theta$ ($^\circ$) (coord = 0 ) |
azimuth_i |
-180 | 180 |
Elevation $\phi$ ($^\circ$) (coord = 0 ) |
elevation_i |
-90 | 90 |
$x$ (m) (coord = 1 ) |
x_i |
-50 | 50 |
$y$ (m) (coord = 1 ) |
y_i |
-50 | 50 |
$z$ (m) (coord = 1 ) |
z_i |
-50 | 50 |
-
P. Lecomte, P.-A. Gauthier, C. Langrenne, A. Berry, et A. Garcia, « A Fifty-Node Lebedev Grid and Its Applications to Ambisonics », Journal of the Audio Engineering Society, vol. 64, nᵒ 11, p. 868‑881, 2016. ↩