Encoder

This tool encodes $S$ sources as point sources in an Ambisonic sound scene up to a maximal degree $L$.

Point source

The $i$-th source, with $i \in \{1, \cdots, S\}$ carries a signal denoted $s(z)$ in the discrete domain. Encoded as a point source, its position is $(r_s, \theta_s, \phi_s)$ from origin and it emits a spherical wave. The near field filters $F_l(k_rs)$ are included to encode the radial distance $r_s$ information. (see radial.lib). In the current implementation, these filters are stabilized with near field compensation filter $\frac{1}{F_l(1,z)}$ at radius $r_\text{spk}=1$ m (see radial.lib). In addition, a delay $\frac{r_s}{c}$ due to the propagation time can be included. When the source moves, this produces a Doppler-like effect, which can be activated or not at runtime. The resulting Ambisonic components are given by:

\[\begin{equation} b_{l,m}(z) = s(z) z^{- \lfloor \frac{r_s}{c} \rfloor} \frac{F_l(r_s, z)}{F_l(1, z)} Y_{l,m}(\theta_s, \phi_s) \label{eq:point_source} \end{equation}\]

Note that to avoid exessing gain for small radius $r_s < 1$ m, the minimum $r_s$ radius is limited at $r_s = 0.75$ m.

Plane wave case

If the source radius $r_s$ is set to $r_\text{spk} = 1$ m, the source is encoded as a plane wave with direction $(\theta_s, \phi_s)$. In fact the radial term in Eq. \eqref{eq:point_source} is equal to unity. The Ambisonic components become:

\[\begin{equation} b_{l,m}(z) = s(z) Y_{l,m}(\theta_s, \phi_s) \end{equation}\]

Compilation parameters

  • L: maximal Spherical Harmonics degree (i.e., Ambisonics order), $L > 0$,
  • S: number of source to encode, $S > 0$,
  • coord : Choice of coordinate system : 0 => Spherical, 1 => Cartesian,
  • doppler : Possibility of Doppler effect : 0 => No, 1 => Yes.

Inputs / Outputs

  • Inputs: $S$
  • Outputs: $(L+1)^2$

User Interface

For the $i$-th source:

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