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=0for no NF,- nfon=1for 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. ↩