I have a microphone array of 4 channels taken as channels [6,10,22,26] from Eigenmike spherical microphone array. I wish to do 3D beamforming and create $8\times 4$ beams, 4-elevations with 8 wavefronts per elevation equally distributed.
I can't seem to work out the math as to the delays between the microphones. I also can't find an "off the shelf" code for that. This is my first beamformer so I am not even sure I am not missing anything. Is delay and sum process all I need?
What are the equations for determining the delays between the channels per beam? Do I need any other equations to create a beamformer?
Specifically, I am trying to create beams in direction from all possible combinations of $\varphi_s \in \{-\frac{3\pi}{8},-\frac{\pi}{8},\frac{\pi}{8},\frac{3\pi}{8}\}$ and $\theta_s\in\{-\frac{7\pi}{8},-\frac{5\pi}{8},-\frac{3\pi}{8},-\frac{\pi}{8},\frac{\pi}{8},\frac{3\pi}{8},\frac{5\pi}{8},\frac{7\pi}{8}\}$.
My microphone array contains 4 microphones $m_i=(r_i,\theta_i,\varphi_i)$, at the following positions: \begin{pmatrix} 0.042 & \frac{\pi}{4} & \frac{7\pi}{36} \\ 0.042 & -\frac{\pi}{4} & -\frac{7\pi}{36} \\ 0.042 & \frac{3\pi}{4} & -\frac{7\pi}{36} \\ 0.042 & -\frac{3\pi}{4} & \frac{7\pi}{36} \end{pmatrix}
$r_i$ is in meters. $\varphi_i, \theta_i$ are azimuth and elevation respectively, according to the microphone's documentation, given herein radians.
A quick sketch of the configuration from two views. Note that the distance of all mics is 42mm from the origin:
$(x,y,z)$ values in this system is extracted in the following manner to my understanding: $$x=r\cdot \cos(\varphi)\cdot \cos(\theta)$$ $$y=r\cdot \cos(\varphi)\cdot \sin(\theta)$$ $$z=r\cdot \sin(\varphi)$$




42*(1/1000) == 0.042). The "source" quotes cm (?). I think that it is 42mm because an ~8cm diameter for the whole spherical mic seems about right. You need to pin down which one is it (mm or cm) when it comes to deriving the delays at least. – A_A Apr 25 '19 at 12:51