Beamforming algorithm / implementation

Hi –

I read in a couple of posts that you guys are working on beamforming.

A couple of questions (perhaps jumping the boat a bit but it would be useful to know what direction you are heading before I start my own development).

  1. Do you plan to implement both detecting direction of arrival (DOA) and beamforming (i.e. array tuning)?
  2. If you are implementing both, with it be “easy” for me to replace either DOA or beamforming? For example, if I want to implement a different DOA algorithm but keep your beamforming?
  3. Do you plan to open source the code?
  4. Have you identified which algorithms you’ll use for DOA and beamforming?


1 Like

Hi @ricardog

Now we have a new release of and with our first approach of a beam forming algorithm

We implemented a Delay and Sum algorithm and as you can see the source code is in a public repository, so go ahead and try with your own algorithms.

Let us know how its going with your algorithms and share with the community.



Hi @kevindpatino

Thanks for the update on beamforming. You guys are making lots of progress.

A couple of questions / comments.

  1. Do you have plans to support dynamic direction of arrival so we don’t have to specify the direction in the code?
  2. Do you have plans to add upsampling or interpolate between samples to get a more accurate delayed signal?
  3. One of the microphone locations in microphone_array_location.h seems to be off (see chart below).



I meant to ask a fourth question.

  1. Are the microphone samples guaranteed to be synchronized in time? That is, when I call the hal::MicrophoneArray.Read() method, do all buffers represent the same time window so that the first samples are coincident in time? If they are synchronized, what’s the worst-case peak-to-peak jitter?

Thanks again.


Hi @kevindpatino,
is beamforming also supported via ALSA?
Is there a way to get the mic array location also via ZMQ?

Big thanks for providing this great progress !


Is it plan to be able to “localize” the direction of the sound input?

It would be nice to see some kind of roadmap from the team.


I am also interested in calculating the direction of arrival. Could you advise how best to tackle this or is it not available right now?


1 Like

The mic array locations seem to be off in general – i.e., the radius is different for the mics and the angles are not uniform around the circle. I would like to know if this is accurate or if the mics are indeed all at the same radius and evenly spaced. More details here:

1 Like